diff options
author | Bastian Bloessl <bloessl@ccs-labs.org> | 2016-04-21 07:36:05 +0200 |
---|---|---|
committer | Bastian Bloessl <bloessl@ccs-labs.org> | 2016-06-29 08:10:32 +0200 |
commit | a88230786e04d8cb8dd169cefe9b7491be5cc6d0 (patch) | |
tree | 14ae939b1eebd95edd531958ce73274688e9c8aa /gnuradio-runtime/lib | |
parent | 05fc980cb1ad3fe257fd508f38a3b0b4156f90ce (diff) |
runtime: allow msg port block finish cleanly
Diffstat (limited to 'gnuradio-runtime/lib')
-rw-r--r-- | gnuradio-runtime/lib/tpb_thread_body.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gnuradio-runtime/lib/tpb_thread_body.cc b/gnuradio-runtime/lib/tpb_thread_body.cc index 59a3712eef..ab374f3e5d 100644 --- a/gnuradio-runtime/lib/tpb_thread_body.cc +++ b/gnuradio-runtime/lib/tpb_thread_body.cc @@ -123,11 +123,16 @@ namespace gr { } else { s = block_executor::BLKD_IN; + // a msg port only block wants to shutdown + if(block->finished()) { + s = block_executor::DONE; + } } - // if msg ports think we are done, we are done - if(block->finished()) + if(block->finished() && s == block_executor::READY_NO_OUTPUT) { s = block_executor::DONE; + d->set_done(true); + } switch(s){ case block_executor::READY: // Tell neighbors we made progress. |