@@ -642,16 +642,25 @@ def maybe_request_more(self):
642642 if space_in_queue >= max_queue_size / 2 :
643643 self .update_next_pages (space_in_queue )
644644
645+ def _send_revise_request (self , request , callback ):
646+ with self .connection .lock :
647+ request_id = self .connection .get_request_id ()
648+ try :
649+ self .connection .send_msg (request , request_id , callback )
650+ except Exception :
651+ if request_id not in self .connection ._requests and request_id not in self .connection .request_ids :
652+ self .connection .request_ids .append (request_id )
653+ raise
654+
645655 def update_next_pages (self , num_next_pages ):
646656 try :
647657 self ._state .num_pages_requested += num_next_pages
648658 log .debug ("Updating backpressure for session %s from %s" , self .stream_id , self .connection .host )
649- with self .connection .lock :
650- self .connection .send_msg (ReviseRequestMessage (ReviseRequestMessage .RevisionType .PAGING_BACKPRESSURE ,
651- self .stream_id ,
652- next_pages = num_next_pages ),
653- self .connection .get_request_id (),
654- self ._on_backpressure_response )
659+ self ._send_revise_request (
660+ ReviseRequestMessage (ReviseRequestMessage .RevisionType .PAGING_BACKPRESSURE ,
661+ self .stream_id ,
662+ next_pages = num_next_pages ),
663+ self ._on_backpressure_response )
655664 except ConnectionShutdown as ex :
656665 log .debug ("Failed to update backpressure for session %s from %s, connection is shutdown" ,
657666 self .stream_id , self .connection .host )
@@ -668,11 +677,10 @@ def _on_backpressure_response(self, response):
668677 def cancel (self ):
669678 try :
670679 log .debug ("Canceling paging session %s from %s" , self .stream_id , self .connection .host )
671- with self .connection .lock :
672- self .connection .send_msg (ReviseRequestMessage (ReviseRequestMessage .RevisionType .PAGING_CANCEL ,
673- self .stream_id ),
674- self .connection .get_request_id (),
675- self ._on_cancel_response )
680+ self ._send_revise_request (
681+ ReviseRequestMessage (ReviseRequestMessage .RevisionType .PAGING_CANCEL ,
682+ self .stream_id ),
683+ self ._on_cancel_response )
676684 except ConnectionShutdown :
677685 log .debug ("Failed to cancel session %s from %s, connection is shutdown" ,
678686 self .stream_id , self .connection .host )
0 commit comments