summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/lib/block_detail.cc
diff options
context:
space:
mode:
authorDavid Sorber <david.sorber@blacklynx.tech>2021-07-29 11:34:37 -0400
committermormj <34754695+mormj@users.noreply.github.com>2021-10-25 11:27:01 -0400
commitf3c558d88bc68d865f823c31e7d9aa78b3feab59 (patch)
tree026d8ff5568bc2c5ab731df29d87901cf1177e00 /gnuradio-runtime/lib/block_detail.cc
parent788827ae116bef871e144abd39b1e4482208eabe (diff)
runtime: Custom Buffer/Accelerator Device Support - Milestone 2
Completion of custom buffer/accelerator device support changes: * Improved custom buffer interface by removing awkward memory allocation functions from the block class * Increased flexibility for creating custom buffers by allowing creation of buffer_single_mapped subclasses * Fully incorporated data movement abstraction into the custom buffer interface and the runtime itself; accelerated blocks are no longer directly responsible for their own data movement * Zero copy back-to-back accelerated blocks are now supported (data no longer needs to be moved back to the host between each block) Signed-off-by: David Sorber <david.sorber@blacklynx.tech> Signed-off-by: Mike Mason <mike.mason@blacklynx.tech>
Diffstat (limited to 'gnuradio-runtime/lib/block_detail.cc')
-rw-r--r--gnuradio-runtime/lib/block_detail.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/gnuradio-runtime/lib/block_detail.cc b/gnuradio-runtime/lib/block_detail.cc
index f5283c56b0..66b32ec078 100644
--- a/gnuradio-runtime/lib/block_detail.cc
+++ b/gnuradio-runtime/lib/block_detail.cc
@@ -114,6 +114,7 @@ void block_detail::consume_each(int how_many_items)
void block_detail::produce(int which_output, int how_many_items)
{
if (how_many_items > 0) {
+ d_output[which_output]->post_work(how_many_items);
d_output[which_output]->update_write_pointer(how_many_items);
d_produce_or |= how_many_items;
}
@@ -123,6 +124,7 @@ void block_detail::produce_each(int how_many_items)
{
if (how_many_items > 0) {
for (int i = 0; i < noutputs(); i++) {
+ d_output[i]->post_work(how_many_items);
d_output[i]->update_write_pointer(how_many_items);
}
d_produce_or |= how_many_items;