@@ -54,8 +54,8 @@ func (rp *RequestPool) Submit(request []byte) error {
54
54
}
55
55
rp .lock .Lock ()
56
56
defer rp .lock .Unlock ()
57
- existStr := fmt .Sprintf ("%v~%v" ,reqInfo .ClientID , reqInfo .ID )
58
- if _ , exist := rp .existMap [existStr ] ; exist {
57
+ existStr := fmt .Sprintf ("%v~%v" , reqInfo .ClientID , reqInfo .ID )
58
+ if _ , exist := rp .existMap [existStr ]; exist {
59
59
rp .semaphore .Release (1 )
60
60
err := fmt .Sprintf ("a request with ID %v and client ID %v already exists in the pool" , reqInfo .ID , reqInfo .ClientID )
61
61
rp .Log .Errorf (err )
@@ -80,20 +80,21 @@ func (rp *RequestPool) NextRequests(n int) []Request {
80
80
func (rp * RequestPool ) RemoveRequest (request Request ) error {
81
81
rp .lock .Lock ()
82
82
defer rp .lock .Unlock ()
83
- existStr := fmt .Sprintf ("%v~%v" ,request .ClientID , request .ID )
84
- if _ , exist := rp .existMap [existStr ] ; exist {
85
- for i , existingReq := range rp .queue {
86
- if existingReq .ClientID == request .ClientID && existingReq .ID == request .ID {
87
- rp .Log .Infof ("Removed request %v from request pool" , request )
88
- rp .queue = append (rp .queue [:i ], rp .queue [i + 1 :]... )
89
- delete (rp .existMap , existStr )
90
- rp .semaphore .Release (1 )
91
- return nil
92
- }
83
+ existStr := fmt .Sprintf ("%v~%v" , request .ClientID , request .ID )
84
+ if _ , exist := rp .existMap [existStr ]; ! exist {
85
+ err := fmt .Sprintf ("Request %v is not in the pool at remove time" , request )
86
+ rp .Log .Warnf (err )
87
+ return fmt .Errorf (err )
88
+ }
89
+ for i , existingReq := range rp .queue {
90
+ if existingReq .ClientID != request .ClientID || existingReq .ID != request .ID {
91
+ continue
93
92
}
93
+ rp .Log .Infof ("Removed request %v from request pool" , request )
94
+ rp .queue = append (rp .queue [:i ], rp .queue [i + 1 :]... )
95
+ delete (rp .existMap , existStr )
96
+ rp .semaphore .Release (1 )
97
+ return nil
94
98
}
95
- err := fmt .Sprintf ("Request %v is not in the pool at remove time" , request )
96
- rp .Log .Warnf (err )
97
- return fmt .Errorf (err )
98
-
99
+ panic ("RemoveRequest should have returned earlier" )
99
100
}
0 commit comments