107 buf = self.wpending.pop(0) |
108 buf = self.wpending.pop(0) |
108 except IndexError: |
109 except IndexError: |
109 break |
110 break |
110 |
111 |
111 try: |
112 try: |
112 try: |
113 with contextlib.suppress(UnicodeEncodeError, |
|
114 UnicodeDecodeError): |
113 buf = buf.encode('utf-8', 'backslashreplace') |
115 buf = buf.encode('utf-8', 'backslashreplace') |
114 except (UnicodeEncodeError, UnicodeDecodeError): |
|
115 pass |
|
116 self.sock.sendall(buf) |
116 self.sock.sendall(buf) |
117 self.nWriteErrors = 0 |
117 self.nWriteErrors = 0 |
118 except OSError: |
118 except OSError: |
119 self.nWriteErrors += 1 |
119 self.nWriteErrors += 1 |
120 if self.nWriteErrors > self.maxtries: |
120 if self.nWriteErrors > self.maxtries: |