File tree Expand file tree Collapse file tree 1 file changed +8
-3
lines changed
Expand file tree Collapse file tree 1 file changed +8
-3
lines changed Original file line number Diff line number Diff line change @@ -1628,12 +1628,17 @@ def on_shutdown(self, broker):
16281628 self .stream .on_disconnect (broker )
16291629
16301630 def on_disconnect (self , broker ):
1631+ # Normally both sides an FD, so it is important that tranmit_side is
1632+ # deregistered from Poller before closing the receive side, as pollers
1633+ # like epoll and kqueue unregister all events on FD close, causing
1634+ # subsequent attempt to unregister the transmit side to fail.
16311635 LOG .debug ('%r: disconnecting' , self )
1632- if self .stream .receive_side :
1633- broker .stop_receive (self .stream )
1634- self .stream .receive_side .close ()
1636+ broker .stop_receive (self .stream )
16351637 if self .stream .transmit_side :
16361638 broker ._stop_transmit (self .stream )
1639+
1640+ self .stream .receive_side .close ()
1641+ if self .stream .transmit_side :
16371642 self .stream .transmit_side .close ()
16381643
16391644
You can’t perform that action at this time.
0 commit comments