(self)
| 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 | |
| 293 | class AsyncIOService(object): |
| 294 |
no test coverage detected