def process_request(self, request, client_address): try: self._handler_threads[client_address] except KeyError: pass else: print 'Connection error: a connection from', client_address[0] print ' with source port', client_address[1], 'is already open.' return t = StoppableThread(target = self.process_request_thread, args = ( request, client_address)) self._handler_threads[client_address] = t t.daemon = self.daemon_threads t.start()