@cryptotaxi247 / kubo / commits / a93b44b22

Only open a message sender when we have messages to send

License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>

Jeromy committed Jul 15, 2017 at 20:18 UTC a93b44b226284159bfefc744040e15e672598674
1 file changed +10 -9
exchange/bitswap/wantmanager.go
+10 -9
@@ -187,15 +187,6 @@ func (mq *msgQueue) runQueue(ctx context.Context) {
187 }
188
189 func (mq *msgQueue) doWork(ctx context.Context) {
190 - if mq.sender == nil {
191 - err := mq.openSender(ctx)
192 - if err != nil {
193 - log.Infof("cant open message sender to peer %s: %s", mq.p, err)
194 - // TODO: cant connect, what now?
195 - return
196 - }
197 - }
198 -
190 // grab outgoing message
191 mq.outlk.Lock()
192 wlm := mq.out
@@ -206,6 +197,16 @@ func (mq *msgQueue) doWork(ctx context.Context) {
197 mq.out = nil
198 mq.outlk.Unlock()
199
200 + // NB: only open a stream if we actually have data to send
201 + if mq.sender == nil {
202 + err := mq.openSender(ctx)
203 + if err != nil {
204 + log.Infof("cant open message sender to peer %s: %s", mq.p, err)
205 + // TODO: cant connect, what now?
206 + return
207 + }
208 + }
209 +
210 // send wantlist updates
211 for { // try to send this message until we fail.
212 err := mq.sender.SendMsg(ctx, wlm)