Benjamin Ash added the comment: After doing a bit more testing, I was able to prevent the problem from occurring in asyncore_test.py with the following patch:
--- /proc/self/fd/11 2013-02-04 11:24:41.298347199 -0500 +++ asyncore_test.py 2013-02-04 11:24:40.393318513 -0500 @@ -19,10 +19,18 @@ self.bind(sock) self.listen(5) - def handle_accepted(self, sock, addr): - print('Incoming connection from %s' % repr(addr)) - handler = EchoHandler(sock) + def handle_accept(self): + pair = self.accept() + if pair is not None: + (sock, addr) = pair + print('Incoming connection from %s' % repr(addr)) + handler = EchoHandler(sock) Using handle_accept() in my code and remembering to call listen() in my asyncore.dispatcher server's constructor did the trick. I am not sure if we still have a bug here though, since if the subclass doesn't define a proper handle_accept() we get into the select() loop and 100% CPU utilization after the initial client connection. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12502> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com