From 32ba283a4ca61ff6be322f546ec796f0ecc59c77 Mon Sep 17 00:00:00 2001 From: greggzj <597299901@qq.com> Date: Sun, 16 Jun 2019 07:46:42 +0800 Subject: [PATCH] propose another way for DelayWorker close issue --- server/dhcp.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/dhcp.py b/server/dhcp.py index 36dc00e..148fb38 100644 --- a/server/dhcp.py +++ b/server/dhcp.py @@ -123,8 +123,8 @@ def _delay_response_thread(self): while not self.closed: if self.closed: break - if not self.queue.empty(): - p = self.queue.get() + try: + p = self.queue.get(timeout=1) t, func, args, kw = p now = time.time() if now < t: @@ -132,6 +132,8 @@ def _delay_response_thread(self): self.queue.put(p) else: func(*args, **kw) + except queue.Empty: + continue def do_after(self, seconds, func, args = (), kw = {}): self.queue.put((time.time() + seconds, func, args, kw))