Ticket #598: eagain.patch
-
_cpwsgiserver.py
old new 24 24 # de-dupe the list 25 25 socket_errors_to_ignore = dict.fromkeys(socket_errors_to_ignore).keys() 26 26 27 socket_errors_to_retry = [] 28 for _ in ("EAGAIN", ): 29 if _ in dir(errno): 30 socket_errors_to_retry.append(getattr(errno, _)) 31 # de-dupe the list 32 socket_errors_to_retry = dict.fromkeys(socket_errors_to_retry).keys() 27 33 34 28 35 class HTTPRequest(object): 29 36 30 37 stderr = sys.stderr … … 144 151 if not self.sent_headers: 145 152 self.sent_headers = True 146 153 self.send_headers() 147 self.wfile.write(d) 148 self.wfile.flush() 154 while True: 155 try: 156 self.wfile.write(d) 157 self.wfile.flush() 158 break 159 except socket.error, e: 160 errno = e.args[0] 161 if errno not in socket_errors_to_retry: 162 raise 149 163 150 164 def send_headers(self): 151 165 if "content-length" not in self.outheaderkeys:

