summaryrefslogtreecommitdiff
path: root/lib/block_task.cpp
diff options
context:
space:
mode:
authorJosh Blum2012-09-05 00:33:33 -0700
committerJosh Blum2012-09-05 00:33:33 -0700
commit9ae32c46be162ade1d403d50334d48820ae21690 (patch)
tree692df04dce05a9424163c3914fc9562ebbe52818 /lib/block_task.cpp
parent536e1452f2a6df78b8cfb62649105a6e9882bc13 (diff)
downloadsandhi-9ae32c46be162ade1d403d50334d48820ae21690.tar.gz
sandhi-9ae32c46be162ade1d403d50334d48820ae21690.tar.bz2
sandhi-9ae32c46be162ade1d403d50334d48820ae21690.zip
work on input buffer reserve logic for satisfying output multiple
Diffstat (limited to 'lib/block_task.cpp')
-rw-r--r--lib/block_task.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/block_task.cpp b/lib/block_task.cpp
index a649590..269e6e9 100644
--- a/lib/block_task.cpp
+++ b/lib/block_task.cpp
@@ -82,7 +82,7 @@ void ElementImpl::handle_task(const tsbe::TaskInterface &task_iface)
this->input_queues.all_ready() and
this->output_queues.all_ready()
)) return;
- //std::cout << "=== calling work on " << name << " ===" << std::endl;
+ std::cout << "=== calling work on " << name << " ===" << std::endl;
const size_t num_inputs = task_iface.get_num_inputs();
const size_t num_outputs = task_iface.get_num_outputs();
@@ -134,7 +134,9 @@ void ElementImpl::handle_task(const tsbe::TaskInterface &task_iface)
const tsbe::Buffer &buff = this->output_queues.front(i);
char *mem = ((char *)buff.get_memory()) + this->output_bytes_offset[i];
const size_t bytes = buff.get_length() - this->output_bytes_offset[i];
- const size_t items = bytes/this->output_items_sizes[i];
+ size_t items = bytes/this->output_items_sizes[i];
+ ASSERT(items >= this->output_multiple_items[i]);
+ items = this->output_multiple_items[i]*(items/this->output_multiple_items[i]);
this->work_io_ptr_mask |= ptrdiff_t(mem);
this->output_items[i]._mem = mem;