diff options
author | Sebastian Koslowski <koslowski@kit.edu> | 2015-05-29 15:42:51 +0200 |
---|---|---|
committer | Sebastian Koslowski <koslowski@kit.edu> | 2015-05-29 15:42:51 +0200 |
commit | bc3fb9ed4ea3b51e9f450c7f7ec007d718bca58a (patch) | |
tree | fdc2ad336e04f7abfcb47e526430afbea01df17a /gnuradio-runtime/python/gnuradio/gr/top_block.py | |
parent | 67463e7418cc608040e2a6db535bf9936d24c50c (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.py | 11 |
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): """ |