Update the state on write
(self)
| 84 | self._update_write() |
| 85 | |
| 86 | def _update_write(self): |
| 87 | """Update the state on write""" |
| 88 | while self._pending_write: |
| 89 | try: |
| 90 | msg = self._pending_write[0] |
| 91 | if self._sock is None: |
| 92 | return |
| 93 | nsend = self._sock.send(msg) |
| 94 | if nsend != len(msg): |
| 95 | self._pending_write[0] = msg[nsend:] |
| 96 | else: |
| 97 | self._pending_write.pop(0) |
| 98 | except OSError as err: |
| 99 | if err.args[0] in (errno.EAGAIN, errno.EWOULDBLOCK): |
| 100 | break |
| 101 | self.on_error(err) |
| 102 | |
| 103 | if self._pending_write: |
| 104 | self._ioloop.update_handler( |
| 105 | self._sock.fileno(), self._ioloop.READ | self._ioloop.ERROR | self._ioloop.WRITE |
| 106 | ) |
| 107 | else: |
| 108 | if self._signal_close: |
| 109 | self.close() |
| 110 | else: |
| 111 | self._ioloop.update_handler( |
| 112 | self._sock.fileno(), self._ioloop.READ | self._ioloop.ERROR |
| 113 | ) |
| 114 | |
| 115 | def _update_read(self): |
| 116 | """Update state when there is read event""" |
no test coverage detected