diff options
author | Josh Blum | 2012-09-02 18:51:25 -0700 |
---|---|---|
committer | Josh Blum | 2012-09-02 18:51:25 -0700 |
commit | 4bb71b3e25c55a28bdfd4447ec2bbb5c669a7c82 (patch) | |
tree | 43ba3a1ac43946c10e8acf33df707501a171ab2f /lib/block_task.cpp | |
parent | 57657446c7ba054b7d45c7befef2ebe8ee891730 (diff) | |
download | sandhi-4bb71b3e25c55a28bdfd4447ec2bbb5c669a7c82.tar.gz sandhi-4bb71b3e25c55a28bdfd4447ec2bbb5c669a7c82.tar.bz2 sandhi-4bb71b3e25c55a28bdfd4447ec2bbb5c669a7c82.zip |
implement logic for work_noutput_items
Diffstat (limited to 'lib/block_task.cpp')
-rw-r--r-- | lib/block_task.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/block_task.cpp b/lib/block_task.cpp index 88ca5cf..59be851 100644 --- a/lib/block_task.cpp +++ b/lib/block_task.cpp @@ -89,6 +89,7 @@ void ElementImpl::handle_task(const tsbe::TaskInterface &task_iface) //------------------------------------------------------------------ //-- initialize input buffers before work //------------------------------------------------------------------ + size_t num_input_items = (num_inputs)? ~0 : 0; //so big that it must std::min size_t input_tokens_count = 0; for (size_t i = 0; i < num_inputs; i++) { @@ -103,12 +104,13 @@ void ElementImpl::handle_task(const tsbe::TaskInterface &task_iface) this->input_items[i]._len = items; this->work_input_items[i] = info.mem; this->work_ninput_items[i] = items; + num_input_items = std::min(num_input_items, items); } //------------------------------------------------------------------ //-- initialize output buffers before work //------------------------------------------------------------------ - size_t num_output_items = ~0; //so big that it must std::min + size_t num_output_items = (num_outputs)? ~0 : 0; //so big that it must std::min size_t output_tokens_count = 0; for (size_t i = 0; i < num_outputs; i++) { @@ -147,6 +149,7 @@ void ElementImpl::handle_task(const tsbe::TaskInterface &task_iface) //------------------------------------------------------------------ //-- the work //------------------------------------------------------------------ + work_noutput_items = (num_inputs)? myulround((num_input_items)*this->relative_rate) : num_output_items; const int ret = block_ptr->Work(this->input_items, this->output_items); const size_t noutput_items = size_t(ret); |