summaryrefslogtreecommitdiff
path: root/lib/output_handlers.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/output_handlers.cpp')
-rw-r--r--lib/output_handlers.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/output_handlers.cpp b/lib/output_handlers.cpp
index 5876f89..aaf5544 100644
--- a/lib/output_handlers.cpp
+++ b/lib/output_handlers.cpp
@@ -70,9 +70,16 @@ void BlockActor::handle_output_alloc(const OutputAllocMessage &message, const Th
const size_t index = message.index;
//return of a positive downstream allocation
- //reset the token, and clear old output buffers
- //the new token from the downstream is installed
- this->output_buffer_tokens[index].reset();
- this->output_queues.flush(index);
- this->output_buffer_tokens[index] = message.token;
+ this->output_queues.set_buffer_queue(index, message.queue);
+}
+
+void BlockActor::handle_output_update(const OutputUpdateMessage &message, const Theron::Address)
+{
+ MESSAGE_TRACER();
+ const size_t i = message.index;
+
+ //update buffer queue configuration
+ if (i >= this->output_queues.size()) return;
+ const size_t reserve_bytes = this->output_items_sizes[i]*this->output_configs[i].reserve_items;
+ this->output_queues.set_reserve_bytes(i, reserve_bytes);
}