summaryrefslogtreecommitdiff
path: root/lib/gras_impl
diff options
context:
space:
mode:
authorJosh Blum2013-07-15 23:51:59 -0700
committerJosh Blum2013-07-15 23:51:59 -0700
commit6d07c50dafbe38049dbede7241e9e66eea0a699e (patch)
tree444d46efa7526a6ca0bebb4be95f878fc4f13d50 /lib/gras_impl
parent6f9ab7732da5731ee0db59d9623111b7af9b2e94 (diff)
downloadsandhi-6d07c50dafbe38049dbede7241e9e66eea0a699e.tar.gz
sandhi-6d07c50dafbe38049dbede7241e9e66eea0a699e.tar.bz2
sandhi-6d07c50dafbe38049dbede7241e9e66eea0a699e.zip
gras: make all start/commit messages high-prio
This makes doing live topology changes w/ commit instant, even if much buffering is backed up.
Diffstat (limited to 'lib/gras_impl')
-rw-r--r--lib/gras_impl/block_actor.hpp4
-rw-r--r--lib/gras_impl/messages.hpp26
2 files changed, 21 insertions, 9 deletions
diff --git a/lib/gras_impl/block_actor.hpp b/lib/gras_impl/block_actor.hpp
index cfbc2c0..a64dc55 100644
--- a/lib/gras_impl/block_actor.hpp
+++ b/lib/gras_impl/block_actor.hpp
@@ -64,8 +64,8 @@ struct BlockActor : Theron::Actor
void handle_top_active(const TopActiveMessage &, const Theron::Address);
void handle_top_inert(const TopInertMessage &, const Theron::Address);
void handle_top_token(const TopTokenMessage &, const Theron::Address);
- void handle_top_config(const GlobalBlockConfig &, const Theron::Address);
- void handle_top_thread_group(const SharedThreadGroup &, const Theron::Address);
+ void handle_top_config(const TopConfigMessage &, const Theron::Address);
+ void handle_top_thread_group(const TopThreadMessage &, const Theron::Address);
void handle_input_tag(const InputTagMessage &, const Theron::Address);
void handle_input_msg(const InputMsgMessage &, const Theron::Address);
diff --git a/lib/gras_impl/messages.hpp b/lib/gras_impl/messages.hpp
index 4294ab8..263fd5d 100644
--- a/lib/gras_impl/messages.hpp
+++ b/lib/gras_impl/messages.hpp
@@ -9,6 +9,8 @@
#include <gras/sbuffer.hpp>
#include <gras_impl/token.hpp>
#include <gras_impl/stats.hpp>
+#include <gras/block_config.hpp>
+#include <gras_impl/interruptible_thread.hpp>
namespace gras
{
@@ -20,12 +22,12 @@ namespace gras
struct TopAllocMessage
{
- //empty
+ Token prio_token;
};
struct TopActiveMessage
{
- //empty
+ Token prio_token;
};
struct TopInertMessage
@@ -36,6 +38,19 @@ struct TopInertMessage
struct TopTokenMessage
{
Token token;
+ Token prio_token;
+};
+
+struct TopConfigMessage
+{
+ GlobalBlockConfig config;
+ Token prio_token;
+};
+
+struct TopThreadMessage
+{
+ SharedThreadGroup thread_group;
+ Token prio_token;
};
//----------------------------------------------------------------------
@@ -156,16 +171,13 @@ struct GetStatsMessage
} //namespace gras
#include <Theron/Register.h>
-#include <gras/top_block.hpp>
-#include <gras_impl/messages.hpp>
-#include <gras_impl/interruptible_thread.hpp>
THERON_DECLARE_REGISTERED_MESSAGE(gras::TopAllocMessage);
THERON_DECLARE_REGISTERED_MESSAGE(gras::TopActiveMessage);
THERON_DECLARE_REGISTERED_MESSAGE(gras::TopInertMessage);
THERON_DECLARE_REGISTERED_MESSAGE(gras::TopTokenMessage);
-THERON_DECLARE_REGISTERED_MESSAGE(gras::GlobalBlockConfig);
-THERON_DECLARE_REGISTERED_MESSAGE(gras::SharedThreadGroup);
+THERON_DECLARE_REGISTERED_MESSAGE(gras::TopConfigMessage);
+THERON_DECLARE_REGISTERED_MESSAGE(gras::TopThreadMessage);
THERON_DECLARE_REGISTERED_MESSAGE(gras::InputTagMessage);
THERON_DECLARE_REGISTERED_MESSAGE(gras::InputMsgMessage);