diff options
author | Josh Blum | 2012-12-01 00:34:27 -0800 |
---|---|---|
committer | Josh Blum | 2012-12-01 00:34:27 -0800 |
commit | f38298e9e5d930a16d27b3e2ef12931a7eff52eb (patch) | |
tree | bca743e2f3a4ed3c9cb6ece31850c6421da6c763 /lib | |
parent | 0dea1563a4e13bd6081acc2ed5f4c611bdfbb9af (diff) | |
download | sandhi-f38298e9e5d930a16d27b3e2ef12931a7eff52eb.tar.gz sandhi-f38298e9e5d930a16d27b3e2ef12931a7eff52eb.tar.bz2 sandhi-f38298e9e5d930a16d27b3e2ef12931a7eff52eb.zip |
mark fail: not ready until a new buffer appears
Diffstat (limited to 'lib')
-rw-r--r-- | lib/block_task.cpp | 3 | ||||
-rw-r--r-- | lib/gras_impl/input_buffer_queues.hpp | 5 | ||||
-rw-r--r-- | lib/gras_impl/output_buffer_queues.hpp | 5 |
3 files changed, 13 insertions, 0 deletions
diff --git a/lib/block_task.cpp b/lib/block_task.cpp index b2b08db..9e5917d 100644 --- a/lib/block_task.cpp +++ b/lib/block_task.cpp @@ -79,6 +79,9 @@ void BlockActor::input_fail(const size_t i) { throw std::runtime_error("input_fail called on maximum_items buffer"); } + + //mark fail: not ready until a new buffer appears + this->input_queues.fail(i); } void BlockActor::output_fail(const size_t i) diff --git a/lib/gras_impl/input_buffer_queues.hpp b/lib/gras_impl/input_buffer_queues.hpp index f81f226..a6b6ff8 100644 --- a/lib/gras_impl/input_buffer_queues.hpp +++ b/lib/gras_impl/input_buffer_queues.hpp @@ -126,6 +126,11 @@ struct InputBufferQueues _bitset.reset(i); } + GRAS_FORCE_INLINE void fail(const size_t i) + { + _bitset.reset(i); + } + size_t size(void) const { return _queues.size(); diff --git a/lib/gras_impl/output_buffer_queues.hpp b/lib/gras_impl/output_buffer_queues.hpp index c432f4d..722a4c2 100644 --- a/lib/gras_impl/output_buffer_queues.hpp +++ b/lib/gras_impl/output_buffer_queues.hpp @@ -56,6 +56,11 @@ struct OutputBufferQueues _bitset.set(i, not _queues[i].empty()); } + GRAS_FORCE_INLINE void fail(const size_t i) + { + _bitset.reset(i); + } + GRAS_FORCE_INLINE void flush(const size_t i) { _queues[i].clear(); |