diff options
Diffstat (limited to 'lib/gras_impl')
-rw-r--r-- | lib/gras_impl/block_actor.hpp | 3 | ||||
-rw-r--r-- | lib/gras_impl/messages.hpp | 8 | ||||
-rw-r--r-- | lib/gras_impl/stats.hpp | 2 |
3 files changed, 13 insertions, 0 deletions
diff --git a/lib/gras_impl/block_actor.hpp b/lib/gras_impl/block_actor.hpp index d40152a..ff285e0 100644 --- a/lib/gras_impl/block_actor.hpp +++ b/lib/gras_impl/block_actor.hpp @@ -43,6 +43,7 @@ struct BlockActor : Apology::Worker this->RegisterHandler(this, &BlockActor::handle_top_thread_group); this->RegisterHandler(this, &BlockActor::handle_input_tag); + this->RegisterHandler(this, &BlockActor::handle_input_msg); this->RegisterHandler(this, &BlockActor::handle_input_buffer); this->RegisterHandler(this, &BlockActor::handle_input_token); this->RegisterHandler(this, &BlockActor::handle_input_check); @@ -71,6 +72,7 @@ struct BlockActor : Apology::Worker void handle_top_thread_group(const SharedThreadGroup &, const Theron::Address); void handle_input_tag(const InputTagMessage &, const Theron::Address); + void handle_input_msg(const InputMsgMessage &, const Theron::Address); void handle_input_buffer(const InputBufferMessage &, const Theron::Address); void handle_input_token(const InputTokenMessage &, const Theron::Address); void handle_input_check(const InputCheckMessage &, const Theron::Address); @@ -145,6 +147,7 @@ struct BlockActor : Apology::Worker //tag tracking std::vector<bool> input_tags_changed; std::vector<std::vector<Tag> > input_tags; + std::vector<std::vector<PMCC> > input_msgs; //interruptible thread stuff bool interruptible_work; diff --git a/lib/gras_impl/messages.hpp b/lib/gras_impl/messages.hpp index 386cd0a..86b6a93 100644 --- a/lib/gras_impl/messages.hpp +++ b/lib/gras_impl/messages.hpp @@ -50,6 +50,13 @@ struct InputTagMessage Tag tag; }; +struct InputMsgMessage +{ + InputMsgMessage(const PMCC &msg):msg(msg){} + size_t index; + PMCC msg; +}; + struct InputBufferMessage { size_t index; @@ -151,6 +158,7 @@ THERON_DECLARE_REGISTERED_MESSAGE(gras::GlobalBlockConfig); THERON_DECLARE_REGISTERED_MESSAGE(gras::SharedThreadGroup); THERON_DECLARE_REGISTERED_MESSAGE(gras::InputTagMessage); +THERON_DECLARE_REGISTERED_MESSAGE(gras::InputMsgMessage); THERON_DECLARE_REGISTERED_MESSAGE(gras::InputBufferMessage); THERON_DECLARE_REGISTERED_MESSAGE(gras::InputTokenMessage); THERON_DECLARE_REGISTERED_MESSAGE(gras::InputCheckMessage); diff --git a/lib/gras_impl/stats.hpp b/lib/gras_impl/stats.hpp index 03fdf3a..b7b4553 100644 --- a/lib/gras_impl/stats.hpp +++ b/lib/gras_impl/stats.hpp @@ -29,8 +29,10 @@ struct BlockStats std::vector<item_index_t> items_consumed; std::vector<item_index_t> tags_consumed; + std::vector<item_index_t> msgs_consumed; std::vector<item_index_t> items_produced; std::vector<item_index_t> tags_produced; + std::vector<item_index_t> msgs_produced; item_index_t work_count; time_ticks_t time_last_work; |