summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/lib
diff options
context:
space:
mode:
authorBastian Bloessl <bloessl@ccs-labs.org>2016-04-21 07:36:05 +0200
committerBastian Bloessl <bloessl@ccs-labs.org>2016-06-29 08:10:32 +0200
commita88230786e04d8cb8dd169cefe9b7491be5cc6d0 (patch)
tree14ae939b1eebd95edd531958ce73274688e9c8aa /gnuradio-runtime/lib
parent05fc980cb1ad3fe257fd508f38a3b0b4156f90ce (diff)
runtime: allow msg port block finish cleanly
Diffstat (limited to 'gnuradio-runtime/lib')
-rw-r--r--gnuradio-runtime/lib/tpb_thread_body.cc9
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.