summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/block_handlers.cpp3
-rw-r--r--lib/gras_impl/output_buffer_queues.hpp5
-rw-r--r--lib/hier_block.cpp4
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();
+ }
}