MCPcopy Create free account
hub / github.com/ActiveState/code / handleWrite

Method handleWrite

recipes/Python/577662_ASIO/recipe-577662.py:266–291  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

264 self.__readCallback = None
265
266 def handleWrite(self):
267 if (self.__connectCallback):
268 err = self.__socket.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR)
269 if err not in (errno.EINPROGRESS, errno.EWOULDBLOCK):
270 self.__asyncIOService.unregisterAsyncSocketForWrite(self)
271 self.__asyncIOService.invokeLater(
272 functools.partial(self.__connectCallback, err = err))
273 self.__connectCallback = None
274
275 if (self.__writeAllCallback):
276 try:
277 bytesSent = self.__socket.send(self.__writeBuffer)
278 self.__writeBuffer = self.__writeBuffer[bytesSent:]
279 if (len(self.__writeBuffer) == 0):
280 self.__asyncIOService.unregisterAsyncSocketForWrite(self)
281 self.__asyncIOService.invokeLater(
282 functools.partial(self.__writeAllCallback, err = 0))
283 self.__writeAllCallback = None
284 except socket.error as e:
285 if e.args[0] in (errno.EAGAIN, errno.EWOULDBLOCK):
286 pass
287 else:
288 self.__asyncIOService.unregisterAsyncSocketForWrite(self)
289 self.__asyncIOService.invokeLater(
290 functools.partial(self.__writeAllCallback, err = e.args[0]))
291 self.__writeAllCallback = None
292
293class AsyncIOService(object):
294

Callers 1

handleEventForFDMethod · 0.80

Calls 4

invokeLaterMethod · 0.80
getsockoptMethod · 0.45
sendMethod · 0.45

Tested by

no test coverage detected