@@ -564,6 +564,48 @@ async def client(sock, addr):
564
564
w = asyncio .wait_for (c , timeout = 5.0 , loop = self .loop )
565
565
self .loop .run_until_complete (w )
566
566
567
+ def test_socket_close_many_add_readers (self ):
568
+ s = socket .socket ()
569
+ with s :
570
+ s .setblocking (False )
571
+ self .loop .add_reader (s , lambda : None )
572
+ self .loop .add_reader (s , lambda : None )
573
+ self .loop .add_reader (s , lambda : None )
574
+ self .loop .remove_reader (s .fileno ())
575
+ s .close ()
576
+ self .assertEqual (s .fileno (), - 1 )
577
+
578
+ s = socket .socket ()
579
+ with s :
580
+ s .setblocking (False )
581
+ self .loop .add_reader (s , lambda : None )
582
+ self .loop .add_reader (s , lambda : None )
583
+ self .loop .add_reader (s , lambda : None )
584
+ self .loop .remove_reader (s )
585
+ s .close ()
586
+ self .assertEqual (s .fileno (), - 1 )
587
+
588
+ def test_socket_close_many_remove_writers (self ):
589
+ s = socket .socket ()
590
+ with s :
591
+ s .setblocking (False )
592
+ self .loop .add_writer (s , lambda : None )
593
+ self .loop .add_writer (s , lambda : None )
594
+ self .loop .add_writer (s , lambda : None )
595
+ self .loop .remove_writer (s .fileno ())
596
+ s .close ()
597
+ self .assertEqual (s .fileno (), - 1 )
598
+
599
+ s = socket .socket ()
600
+ with s :
601
+ s .setblocking (False )
602
+ self .loop .add_writer (s , lambda : None )
603
+ self .loop .add_writer (s , lambda : None )
604
+ self .loop .add_writer (s , lambda : None )
605
+ self .loop .remove_writer (s )
606
+ s .close ()
607
+ self .assertEqual (s .fileno (), - 1 )
608
+
567
609
568
610
class TestAIOSockets (_TestSockets , tb .AIOTestCase ):
569
611
pass
0 commit comments