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()