@@ -26,11 +26,6 @@ import (
26
26
// The code in this file implements the internal thread for the response manager.
27
27
// These functions can modify the internal state of the ResponseManager
28
28
29
- type queueTopic struct {
30
- p peer.ID
31
- requestID graphsync.RequestID
32
- }
33
-
34
29
func (rm * ResponseManager ) cleanupInProcessResponses () {
35
30
for _ , response := range rm .inProgressResponses {
36
31
response .cancelFn ()
@@ -137,14 +132,14 @@ func (rm *ResponseManager) unpauseRequest(requestID graphsync.RequestID, extensi
137
132
return nil
138
133
})
139
134
}
140
- rm .responseQueue .PushTask (inProgressResponse .peer , peertask.Task {Topic : queueTopic { inProgressResponse . peer , requestID } , Priority : math .MaxInt32 , Work : 1 })
135
+ rm .responseQueue .PushTask (inProgressResponse .peer , peertask.Task {Topic : requestID , Priority : math .MaxInt32 , Work : 1 })
141
136
return nil
142
137
}
143
138
144
139
func (rm * ResponseManager ) abortRequest (ctx context.Context , requestID graphsync.RequestID , err error ) error {
145
140
response , ok := rm .inProgressResponses [requestID ]
146
141
if ok {
147
- rm .responseQueue .Remove (queueTopic { response . peer , requestID } , response .peer )
142
+ rm .responseQueue .Remove (requestID , response .peer )
148
143
}
149
144
if ! ok || response .state == graphsync .CompletingSend {
150
145
return graphsync.RequestNotFoundErr {}
@@ -258,7 +253,7 @@ func (rm *ResponseManager) processRequests(p peer.ID, requests []gsmsg.GraphSync
258
253
}
259
254
// TODO: Use a better work estimation metric.
260
255
261
- rm .responseQueue .PushTask (p , peertask.Task {Topic : queueTopic { p , request .ID ()} , Priority : int (request .Priority ()), Work : 1 })
256
+ rm .responseQueue .PushTask (p , peertask.Task {Topic : request .ID (), Priority : int (request .Priority ()), Work : 1 })
262
257
}
263
258
}
264
259
@@ -297,28 +292,28 @@ func (rm *ResponseManager) taskDataForKey(requestID graphsync.RequestID) queryex
297
292
}
298
293
}
299
294
300
- func (rm * ResponseManager ) startTask (task * peertask.Task ) queryexecutor.ResponseTask {
301
- key := task .Topic .(queueTopic )
302
- taskData := rm .taskDataForKey (key . requestID )
295
+ func (rm * ResponseManager ) startTask (task * peertask.Task , p peer. ID ) queryexecutor.ResponseTask {
296
+ requestID := task .Topic .(graphsync. RequestID )
297
+ taskData := rm .taskDataForKey (requestID )
303
298
if taskData .Empty {
304
- rm .responseQueue .TaskDone (key . p , task )
299
+ rm .responseQueue .TaskDone (p , task )
305
300
}
306
301
307
302
return taskData
308
303
}
309
304
310
- func (rm * ResponseManager ) finishTask (task * peertask.Task , err error ) {
311
- key := task .Topic .(queueTopic )
312
- rm .responseQueue .TaskDone (key . p , task )
313
- response , ok := rm .inProgressResponses [key . requestID ]
305
+ func (rm * ResponseManager ) finishTask (task * peertask.Task , p peer. ID , err error ) {
306
+ requestID := task .Topic .(graphsync. RequestID )
307
+ rm .responseQueue .TaskDone (p , task )
308
+ response , ok := rm .inProgressResponses [requestID ]
314
309
if ! ok {
315
310
return
316
311
}
317
312
if _ , ok := err .(hooks.ErrPaused ); ok {
318
313
response .state = graphsync .Paused
319
314
return
320
315
}
321
- log .Infow ("graphsync response processing complete (messages stil sending)" , "request id" , key . requestID .String (), "peer" , key . p , "total time" , time .Since (response .startTime ))
316
+ log .Infow ("graphsync response processing complete (messages stil sending)" , "request id" , requestID .String (), "peer" , p , "total time" , time .Since (response .startTime ))
322
317
323
318
if err != nil {
324
319
response .span .RecordError (err )
@@ -327,13 +322,13 @@ func (rm *ResponseManager) finishTask(task *peertask.Task, err error) {
327
322
}
328
323
329
324
if ipldutil .IsContextCancelErr (err ) {
330
- rm .cancelledListeners .NotifyCancelledListeners (key . p , response .request )
331
- rm .terminateRequest (key . requestID )
325
+ rm .cancelledListeners .NotifyCancelledListeners (p , response .request )
326
+ rm .terminateRequest (requestID )
332
327
return
333
328
}
334
329
335
330
if err == queryexecutor .ErrNetworkError {
336
- rm .terminateRequest (key . requestID )
331
+ rm .terminateRequest (requestID )
337
332
return
338
333
}
339
334
@@ -385,11 +380,11 @@ func fromPeerTopics(pt *peertracker.PeerTrackerTopics) peerstate.TaskQueueState
385
380
}
386
381
active := make ([]graphsync.RequestID , 0 , len (pt .Active ))
387
382
for _ , topic := range pt .Active {
388
- active = append (active , topic .(queueTopic ). requestID )
383
+ active = append (active , topic .(graphsync. RequestID ) )
389
384
}
390
385
pending := make ([]graphsync.RequestID , 0 , len (pt .Pending ))
391
386
for _ , topic := range pt .Pending {
392
- pending = append (pending , topic .(queueTopic ). requestID )
387
+ pending = append (pending , topic .(graphsync. RequestID ) )
393
388
}
394
389
return peerstate.TaskQueueState {
395
390
Active : active ,
0 commit comments