5016: PollClient.run_forever() polls self.stop() in order to have a chance to process...
authorPeter Amstutz <peter.amstutz@curoverse.com>
Mon, 19 Jan 2015 14:49:43 +0000 (09:49 -0500)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Mon, 19 Jan 2015 14:49:43 +0000 (09:49 -0500)
sdk/python/arvados/events.py

index d1abc0f7de0cd1a7c35cffb254605be302e85fd1..f65486a7f1775e7cedb2bc3e40b2b5d7e9095c9e 100644 (file)
@@ -79,7 +79,9 @@ class PollClient(threading.Thread):
             self.stop.wait(self.poll_time)
 
     def run_forever(self):
-        self.stop.wait()
+        # Have to poll here, otherwise KeyboardInterrupt will never get processed.
+        while not self.stop.is_set():
+            self.stop.wait(1)
 
     def close(self):
         self.stop.set()