rpc: pass outCapacity to eventBus#Subscribe when subscribing using a l… (#4279)

* pass `outCapacity` to `eventBus#Subscribe` when subscribing using a local client

Fixes #4256

* use outCap directly
This commit is contained in:
Anton Kaliaev
2020-01-03 12:10:36 +04:00
committed by GitHub
parent ffe5dff8d9
commit 7f655d8e9e
2 changed files with 11 additions and 4 deletions

View File

@@ -177,16 +177,22 @@ func (c *Local) Subscribe(
if err != nil {
return nil, errors.Wrap(err, "failed to parse query")
}
sub, err := c.EventBus.Subscribe(ctx, subscriber, q)
if err != nil {
return nil, errors.Wrap(err, "failed to subscribe")
}
outCap := 1
if len(outCapacity) > 0 {
outCap = outCapacity[0]
}
var sub types.Subscription
if outCap > 0 {
sub, err = c.EventBus.Subscribe(ctx, subscriber, q, outCap)
} else {
sub, err = c.EventBus.SubscribeUnbuffered(ctx, subscriber, q)
}
if err != nil {
return nil, errors.Wrap(err, "failed to subscribe")
}
outc := make(chan ctypes.ResultEvent, outCap)
go c.eventsRoutine(sub, subscriber, q, outc)