diff --git a/sjrpc/server/simple.py b/sjrpc/server/simple.py index d46c703adcd06504cf29cbd1fcbf5bc428b7b98f..fb2f584a16f24281f5e62713a8ef370065faef63 100644 --- a/sjrpc/server/simple.py +++ b/sjrpc/server/simple.py @@ -45,8 +45,12 @@ class SimpleRpcServer(ConnectionManager): conn = self._clients.get(fd) self._poll.unregister(fd) if fd is not None: - del self._clients[fd] - conn.shutdown(callback=self._on_disconnect) + try: + del self._clients[fd] + except KeyError: + pass + if conn is not None: + conn.shutdown(callback=self._on_disconnect) def all_connections(self): return set(self._clients.values())