diff options
author | Josh Blum | 2013-06-15 23:33:18 -0700 |
---|---|---|
committer | Josh Blum | 2013-06-15 23:33:18 -0700 |
commit | e6d6d285cfd7f4d8f63c45bc77cb53943a04a5eb (patch) | |
tree | 904c042399ee0cac75b3f66483269feb836dca27 /lib/gras_impl/input_buffer_queues.hpp | |
parent | f6140c831e1585eed07d35c17a2792f214e94636 (diff) | |
download | sandhi-e6d6d285cfd7f4d8f63c45bc77cb53943a04a5eb.tar.gz sandhi-e6d6d285cfd7f4d8f63c45bc77cb53943a04a5eb.tar.bz2 sandhi-e6d6d285cfd7f4d8f63c45bc77cb53943a04a5eb.zip |
gras: dont update item counts until after work
This lets API calls like get_consumed/produced
keep their values until after work is called.
The propagate tags overload need this to work.
Diffstat (limited to 'lib/gras_impl/input_buffer_queues.hpp')
-rw-r--r-- | lib/gras_impl/input_buffer_queues.hpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/gras_impl/input_buffer_queues.hpp b/lib/gras_impl/input_buffer_queues.hpp index 7d31b9a..b9bd1b7 100644 --- a/lib/gras_impl/input_buffer_queues.hpp +++ b/lib/gras_impl/input_buffer_queues.hpp @@ -77,7 +77,7 @@ struct InputBufferQueues } //! Call when input bytes consumed by work - void consume(const size_t i, const size_t bytes_consumed); + void consume(const size_t i, const size_t items_consumed); void resize(const size_t size); @@ -330,8 +330,9 @@ GRAS_FORCE_INLINE void InputBufferQueues::push(const size_t i, const SBuffer &bu } -GRAS_FORCE_INLINE void InputBufferQueues::consume(const size_t i, const size_t bytes_consumed) +GRAS_FORCE_INLINE void InputBufferQueues::consume(const size_t i, const size_t items_consumed) { + const size_t bytes_consumed = items_consumed * _items_sizes[i]; ASSERT(not _queues[i].empty()); ASSERT((bytes_consumed % _items_sizes[i]) == 0); SBuffer &front = _queues[i].front(); |