diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/block_handlers.cpp | 3 | ||||
-rw-r--r-- | lib/gras_impl/output_buffer_queues.hpp | 5 | ||||
-rw-r--r-- | lib/hier_block.cpp | 4 |
3 files changed, 10 insertions, 2 deletions
diff --git a/lib/block_handlers.cpp b/lib/block_handlers.cpp index 384deaa..0fd7022 100644 --- a/lib/block_handlers.cpp +++ b/lib/block_handlers.cpp @@ -191,10 +191,9 @@ void ElementImpl::topology_update(const tsbe::TaskInterface &task_iface) this->input_tags_changed.resize(num_inputs); this->input_tags.resize(num_inputs); - //TODO: think more about this: + //a block looses all connections, allow it to free if (num_inputs == 0 and num_outputs == 0) { - HERE(); this->mark_done(task_iface); } diff --git a/lib/gras_impl/output_buffer_queues.hpp b/lib/gras_impl/output_buffer_queues.hpp index 6cd12c6..d484f3d 100644 --- a/lib/gras_impl/output_buffer_queues.hpp +++ b/lib/gras_impl/output_buffer_queues.hpp @@ -92,6 +92,11 @@ struct OutputBufferQueues { return (~_bitset).none(); } + + GRAS_FORCE_INLINE size_t size(void) const + { + return _queues.size(); + } }; } //namespace gnuradio diff --git a/lib/hier_block.cpp b/lib/hier_block.cpp index e4918ef..860ac25 100644 --- a/lib/hier_block.cpp +++ b/lib/hier_block.cpp @@ -85,4 +85,8 @@ void HierBlock::disconnect_all(void) { (*this)->topology.clear_all(); (*this)->children.clear(); + if ((*this)->executor) + { + (*this)->executor.commit(); + } } |