@@ -437,6 +437,17 @@ def _result(self, value):
437
437
fut .set_result (value )
438
438
return fut
439
439
440
+ @staticmethod
441
+ def finish_socket_func (trans , key , ov ):
442
+ try :
443
+ return ov .getresult ()
444
+ except OSError as exc :
445
+ if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
446
+ _overlapped .ERROR_OPERATION_ABORTED ):
447
+ raise ConnectionResetError (* exc .args )
448
+ else :
449
+ raise
450
+
440
451
def recv (self , conn , nbytes , flags = 0 ):
441
452
self ._register_with_iocp (conn )
442
453
ov = _overlapped .Overlapped (NULL )
@@ -448,17 +459,7 @@ def recv(self, conn, nbytes, flags=0):
448
459
except BrokenPipeError :
449
460
return self ._result (b'' )
450
461
451
- def finish_recv (trans , key , ov ):
452
- try :
453
- return ov .getresult ()
454
- except OSError as exc :
455
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
456
- _overlapped .ERROR_OPERATION_ABORTED ):
457
- raise ConnectionResetError (* exc .args )
458
- else :
459
- raise
460
-
461
- return self ._register (ov , conn , finish_recv )
462
+ return self ._register (ov , conn , self .finish_socket_func )
462
463
463
464
def recv_into (self , conn , buf , flags = 0 ):
464
465
self ._register_with_iocp (conn )
@@ -471,17 +472,7 @@ def recv_into(self, conn, buf, flags=0):
471
472
except BrokenPipeError :
472
473
return self ._result (b'' )
473
474
474
- def finish_recv (trans , key , ov ):
475
- try :
476
- return ov .getresult ()
477
- except OSError as exc :
478
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
479
- _overlapped .ERROR_OPERATION_ABORTED ):
480
- raise ConnectionResetError (* exc .args )
481
- else :
482
- raise
483
-
484
- return self ._register (ov , conn , finish_recv )
475
+ return self ._register (ov , conn , self .finish_socket_func )
485
476
486
477
def recvfrom (self , conn , nbytes , flags = 0 ):
487
478
self ._register_with_iocp (conn )
@@ -491,35 +482,15 @@ def recvfrom(self, conn, nbytes, flags=0):
491
482
except BrokenPipeError :
492
483
return self ._result ((b'' , None ))
493
484
494
- def finish_recv (trans , key , ov ):
495
- try :
496
- return ov .getresult ()
497
- except OSError as exc :
498
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
499
- _overlapped .ERROR_OPERATION_ABORTED ):
500
- raise ConnectionResetError (* exc .args )
501
- else :
502
- raise
503
-
504
- return self ._register (ov , conn , finish_recv )
485
+ return self ._register (ov , conn , self .finish_socket_func )
505
486
506
487
def sendto (self , conn , buf , flags = 0 , addr = None ):
507
488
self ._register_with_iocp (conn )
508
489
ov = _overlapped .Overlapped (NULL )
509
490
510
491
ov .WSASendTo (conn .fileno (), buf , flags , addr )
511
492
512
- def finish_send (trans , key , ov ):
513
- try :
514
- return ov .getresult ()
515
- except OSError as exc :
516
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
517
- _overlapped .ERROR_OPERATION_ABORTED ):
518
- raise ConnectionResetError (* exc .args )
519
- else :
520
- raise
521
-
522
- return self ._register (ov , conn , finish_send )
493
+ return self ._register (ov , conn , self .finish_socket_func )
523
494
524
495
def send (self , conn , buf , flags = 0 ):
525
496
self ._register_with_iocp (conn )
@@ -529,17 +500,7 @@ def send(self, conn, buf, flags=0):
529
500
else :
530
501
ov .WriteFile (conn .fileno (), buf )
531
502
532
- def finish_send (trans , key , ov ):
533
- try :
534
- return ov .getresult ()
535
- except OSError as exc :
536
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
537
- _overlapped .ERROR_OPERATION_ABORTED ):
538
- raise ConnectionResetError (* exc .args )
539
- else :
540
- raise
541
-
542
- return self ._register (ov , conn , finish_send )
503
+ return self ._register (ov , conn , self .finish_socket_func )
543
504
544
505
def accept (self , listener ):
545
506
self ._register_with_iocp (listener )
@@ -610,16 +571,7 @@ def sendfile(self, sock, file, offset, count):
610
571
offset_low , offset_high ,
611
572
count , 0 , 0 )
612
573
613
- def finish_sendfile (trans , key , ov ):
614
- try :
615
- return ov .getresult ()
616
- except OSError as exc :
617
- if exc .winerror in (_overlapped .ERROR_NETNAME_DELETED ,
618
- _overlapped .ERROR_OPERATION_ABORTED ):
619
- raise ConnectionResetError (* exc .args )
620
- else :
621
- raise
622
- return self ._register (ov , sock , finish_sendfile )
574
+ return self ._register (ov , sock , self .finish_socket_func )
623
575
624
576
def accept_pipe (self , pipe ):
625
577
self ._register_with_iocp (pipe )
0 commit comments