summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/python/gnuradio/gr/top_block.py
diff options
context:
space:
mode:
authorSebastian Koslowski <koslowski@kit.edu>2015-05-29 15:42:51 +0200
committerSebastian Koslowski <koslowski@kit.edu>2015-05-29 15:42:51 +0200
commitbc3fb9ed4ea3b51e9f450c7f7ec007d718bca58a (patch)
treefdc2ad336e04f7abfcb47e526430afbea01df17a /gnuradio-runtime/python/gnuradio/gr/top_block.py
parent67463e7418cc608040e2a6db535bf9936d24c50c (diff)
runtime: add flag to wrapped top_block to control SIGINT handling in wait()
Diffstat (limited to 'gnuradio-runtime/python/gnuradio/gr/top_block.py')
-rw-r--r--gnuradio-runtime/python/gnuradio/gr/top_block.py11
1 files changed, 7 insertions, 4 deletions
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):
"""