"""
_buffered = b''
- def _close(self):
- win32.CloseHandle(self._handle)
+ def _close(self, _CloseHandle=win32.CloseHandle):
+ _CloseHandle(self._handle)
def _send_bytes(self, buf):
overlapped = win32.WriteFile(self._handle, buf, overlapped=True)
"""
if win32:
- def _close(self):
- win32.closesocket(self._handle)
+ def _close(self, _close=win32.closesocket):
+ _close(self._handle)
_write = win32.send
_read = win32.recv
else:
- def _close(self):
- os.close(self._handle)
+ def _close(self, _close=os.close):
+ _close(self._handle)
_write = os.write
_read = os.read
_finalizer_registry[self._key] = self
- def __call__(self, wr=None):
+ def __call__(self, wr=None,
+ # Need to bind these locally because the globals can have
+ # been cleared at shutdown
+ _finalizer_registry=_finalizer_registry,
+ sub_debug=sub_debug):
'''
Run the callback unless it has already been called or cancelled
'''