summaryrefslogtreecommitdiff
path: root/lib/input_handlers.cpp
diff options
context:
space:
mode:
authorJosh Blum2012-12-01 10:22:43 -0800
committerJosh Blum2012-12-01 10:22:43 -0800
commitda0a29416576eb535c2e4d6ca4516d02cdd80089 (patch)
treeed85a23d539210293e830619cce4287092235d97 /lib/input_handlers.cpp
parentf4d7bf791d677cbff05c8ee12fe1d3b5a922373f (diff)
downloadsandhi-da0a29416576eb535c2e4d6ca4516d02cdd80089.tar.gz
sandhi-da0a29416576eb535c2e4d6ca4516d02cdd80089.tar.bz2
sandhi-da0a29416576eb535c2e4d6ca4516d02cdd80089.zip
input_tags_changed logic to avoid sorting msgs
Diffstat (limited to 'lib/input_handlers.cpp')
-rw-r--r--lib/input_handlers.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/input_handlers.cpp b/lib/input_handlers.cpp
index 6b9fd2d..02f62f3 100644
--- a/lib/input_handlers.cpp
+++ b/lib/input_handlers.cpp
@@ -12,7 +12,10 @@ void BlockActor::handle_input_tag(const InputTagMessage &message, const Theron::
//handle incoming stream tag, push into the tag storage
this->input_tags[index].push_back(message.tag);
- this->input_tags_changed[index] = true;
+
+ //Changed is a boolean to enable sorting of tags: If the offset is 0, there is nothing to sort,
+ //because tags are being used for message passing, or this is just the first tag in a stream.
+ this->input_tags_changed[index] = this->input_tags_changed[index] or message.tag.offset != 0;
this->inputs_available.set(index);
this->handle_task();
}