From bc3fb9ed4ea3b51e9f450c7f7ec007d718bca58a Mon Sep 17 00:00:00 2001
From: Sebastian Koslowski <koslowski@kit.edu>
Date: Fri, 29 May 2015 15:42:51 +0200
Subject: runtime: add flag to wrapped top_block to control SIGINT handling in
 wait()

---
 gnuradio-runtime/python/gnuradio/gr/top_block.py | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

(limited to 'gnuradio-runtime/python/gnuradio/gr/top_block.py')

diff --git a/gnuradio-runtime/python/gnuradio/gr/top_block.py b/gnuradio-runtime/python/gnuradio/gr/top_block.py
index f449d98489..2efcbd9aae 100644
--- a/gnuradio-runtime/python/gnuradio/gr/top_block.py
+++ b/gnuradio-runtime/python/gnuradio/gr/top_block.py
@@ -63,11 +63,13 @@ class _top_block_waiter(_threading.Thread):
         top_block_wait_unlocked(self.tb)
         self.event.set()
 
-    def wait(self):
+    def wait(self, handle_sigint=True):
         try:
-            while not self.event.isSet():
-                self.event.wait(0.100)
+            while not self.event.wait(0.1):
+                pass
         except KeyboardInterrupt:
+            if not handle_sigint:
+                raise
             self.tb.stop()
             self.wait()
 
@@ -98,6 +100,7 @@ class top_block(hier_block2):
         """
         # not calling hier_block2.__init__, we set our own _impl
         self._impl = top_block_swig(name)
+        self.handle_sigint = True
 
     def start(self, max_noutput_items=10000000):
         """
@@ -128,7 +131,7 @@ class top_block(hier_block2):
         """
         Wait for the flowgraph to finish running
         """
-        _top_block_waiter(self._impl).wait()
+        _top_block_waiter(self._impl).wait(self.handle_sigint)
 
     def dot_graph(self):
         """
-- 
cgit v1.2.3