@@ -446,6 +446,17 @@ def _result(self, value):
446
446
fut .set_result (value )
447
447
return fut
448
448
449
+ @staticmethod
450
+ def finish_socket_func (trans , key , ov ):
451
+ try :
452
+ return ov .getresult ()
453
+ except OSError as exc :
454
+ if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
455
+ _overlapped .ERROR_OPERATION_ABORTED ):
456
+ raise ConnectionResetError (* exc .args )
457
+ else :
458
+ raise
459
+
449
460
def recv (self , conn , nbytes , flags = 0 ):
450
461
self ._register_with_iocp (conn )
451
462
ov = _overlapped .Overlapped (NULL )
@@ -457,17 +468,7 @@ def recv(self, conn, nbytes, flags=0):
457
468
except BrokenPipeError :
458
469
return self ._result (b'' )
459
470
460
- def finish_recv (trans , key , ov ):
461
- try :
462
- return ov .getresult ()
463
- except OSError as exc :
464
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
465
- _overlapped .ERROR_OPERATION_ABORTED ):
466
- raise ConnectionResetError (* exc .args )
467
- else :
468
- raise
469
-
470
- return self ._register (ov , conn , finish_recv )
471
+ return self ._register (ov , conn , self .finish_socket_func )
471
472
472
473
def recv_into (self , conn , buf , flags = 0 ):
473
474
self ._register_with_iocp (conn )
@@ -480,17 +481,7 @@ def recv_into(self, conn, buf, flags=0):
480
481
except BrokenPipeError :
481
482
return self ._result (0 )
482
483
483
- def finish_recv (trans , key , ov ):
484
- try :
485
- return ov .getresult ()
486
- except OSError as exc :
487
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
488
- _overlapped .ERROR_OPERATION_ABORTED ):
489
- raise ConnectionResetError (* exc .args )
490
- else :
491
- raise
492
-
493
- return self ._register (ov , conn , finish_recv )
484
+ return self ._register (ov , conn , self .finish_socket_func )
494
485
495
486
def recvfrom (self , conn , nbytes , flags = 0 ):
496
487
self ._register_with_iocp (conn )
@@ -500,17 +491,7 @@ def recvfrom(self, conn, nbytes, flags=0):
500
491
except BrokenPipeError :
501
492
return self ._result ((b'' , None ))
502
493
503
- def finish_recv (trans , key , ov ):
504
- try :
505
- return ov .getresult ()
506
- except OSError as exc :
507
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
508
- _overlapped .ERROR_OPERATION_ABORTED ):
509
- raise ConnectionResetError (* exc .args )
510
- else :
511
- raise
512
-
513
- return self ._register (ov , conn , finish_recv )
494
+ return self ._register (ov , conn , self .finish_socket_func )
514
495
515
496
def recvfrom_into (self , conn , buf , flags = 0 ):
516
497
self ._register_with_iocp (conn )
@@ -538,17 +519,7 @@ def sendto(self, conn, buf, flags=0, addr=None):
538
519
539
520
ov .WSASendTo (conn .fileno (), buf , flags , addr )
540
521
541
- def finish_send (trans , key , ov ):
542
- try :
543
- return ov .getresult ()
544
- except OSError as exc :
545
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
546
- _overlapped .ERROR_OPERATION_ABORTED ):
547
- raise ConnectionResetError (* exc .args )
548
- else :
549
- raise
550
-
551
- return self ._register (ov , conn , finish_send )
522
+ return self ._register (ov , conn , self .finish_socket_func )
552
523
553
524
def send (self , conn , buf , flags = 0 ):
554
525
self ._register_with_iocp (conn )
@@ -558,17 +529,7 @@ def send(self, conn, buf, flags=0):
558
529
else :
559
530
ov .WriteFile (conn .fileno (), buf )
560
531
561
- def finish_send (trans , key , ov ):
562
- try :
563
- return ov .getresult ()
564
- except OSError as exc :
565
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
566
- _overlapped .ERROR_OPERATION_ABORTED ):
567
- raise ConnectionResetError (* exc .args )
568
- else :
569
- raise
570
-
571
- return self ._register (ov , conn , finish_send )
532
+ return self ._register (ov , conn , self .finish_socket_func )
572
533
573
534
def accept (self , listener ):
574
535
self ._register_with_iocp (listener )
@@ -639,16 +600,7 @@ def sendfile(self, sock, file, offset, count):
639
600
offset_low , offset_high ,
640
601
count , 0 , 0 )
641
602
642
- def finish_sendfile (trans , key , ov ):
643
- try :
644
- return ov .getresult ()
645
- except OSError as exc :
646
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
647
- _overlapped .ERROR_OPERATION_ABORTED ):
648
- raise ConnectionResetError (* exc .args )
649
- else :
650
- raise
651
- return self ._register (ov , sock , finish_sendfile )
603
+ return self ._register (ov , sock , self .finish_socket_func )
652
604
653
605
def accept_pipe (self , pipe ):
654
606
self ._register_with_iocp (pipe )
0 commit comments