summaryrefslogtreecommitdiff
path: root/lib/gras_impl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gras_impl')
-rw-r--r--lib/gras_impl/block_actor.hpp3
-rw-r--r--lib/gras_impl/messages.hpp8
-rw-r--r--lib/gras_impl/stats.hpp2
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;