From e8b29469993e0038befc0625f4ccc9c750b43a6d Mon Sep 17 00:00:00 2001 From: clowwindy Date: Sat, 1 Aug 2015 19:09:29 +0800 Subject: [PATCH] fix workers --- shadowsocks/asyncdns.py | 4 +++- shadowsocks/tcprelay.py | 3 +++ shadowsocks/udprelay.py | 5 +++-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/shadowsocks/asyncdns.py b/shadowsocks/asyncdns.py index f5d398a..d807caf 100644 --- a/shadowsocks/asyncdns.py +++ b/shadowsocks/asyncdns.py @@ -425,7 +425,9 @@ class DNSResolver(object): def close(self): if self._sock: - self._loop.remove(self._sock, self) + if self._loop: + self._loop.remove_periodic(self.handle_periodic) + self._loop.remove(self._sock, self) self._sock.close() self._sock = None diff --git a/shadowsocks/tcprelay.py b/shadowsocks/tcprelay.py index 3300df3..38d4101 100644 --- a/shadowsocks/tcprelay.py +++ b/shadowsocks/tcprelay.py @@ -703,4 +703,7 @@ class TCPRelay(object): def close(self, next_tick=False): self._closed = True if not next_tick: + if self._eventloop: + self._eventloop.remove_periodic(self.handle_periodic) + self._eventloop.remove(self._server_socket, self) self._server_socket.close() diff --git a/shadowsocks/udprelay.py b/shadowsocks/udprelay.py index b67770a..c2386d9 100644 --- a/shadowsocks/udprelay.py +++ b/shadowsocks/udprelay.py @@ -278,10 +278,11 @@ class UDPRelay(object): self._server_socket.close() for sock in self._sockets: sock.close() - self._eventloop.remove_periodic(self.handle_periodic) def close(self, next_tick=False): self._closed = True if not next_tick: - self._eventloop.remove(self._server_socket, self) + if self._eventloop: + self._eventloop.remove_periodic(self.handle_periodic) + self._eventloop.remove(self._server_socket, self) self._server_socket.close()