diff options
author | Josh Blum | 2013-03-03 13:35:16 -0600 |
---|---|---|
committer | Josh Blum | 2013-03-03 13:35:16 -0600 |
commit | e90090fecbc99dddfb197e8ff32f6546e72e34aa (patch) | |
tree | 7ded1b72101878ac4555ad59f2b283b2636aa494 /lib | |
parent | 74068f07350bd5b91d7c4b303673cd813c9b6c52 (diff) | |
download | sandhi-e90090fecbc99dddfb197e8ff32f6546e72e34aa.tar.gz sandhi-e90090fecbc99dddfb197e8ff32f6546e72e34aa.tar.bz2 sandhi-e90090fecbc99dddfb197e8ff32f6546e72e34aa.zip |
gras: slightly more fun with likley
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gras_impl/input_buffer_queues.hpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/gras_impl/input_buffer_queues.hpp b/lib/gras_impl/input_buffer_queues.hpp index 76e00a2..6886e6e 100644 --- a/lib/gras_impl/input_buffer_queues.hpp +++ b/lib/gras_impl/input_buffer_queues.hpp @@ -54,10 +54,16 @@ struct InputBufferQueues ASSERT(_items_sizes[i] != 0); //special case when the null buffer is possible - if (_queues[i].empty()) return get_null_buff(); + if GRAS_UNLIKELY(_queues[i].empty()) + { + return get_null_buff(); + } //there are enough enqueued bytes, but not in the front buffer - if (_queues[i].front().length < _reserve_bytes[i]) this->accumulate(i); + if GRAS_UNLIKELY(_queues[i].front().length < _reserve_bytes[i]) + { + this->accumulate(i); + } ASSERT(_queues[i].front().length >= _reserve_bytes[i]); @@ -259,13 +265,13 @@ GRAS_FORCE_INLINE void InputBufferQueues::accumulate(const size_t i) GRAS_FORCE_INLINE void InputBufferQueues::push(const size_t i, const SBuffer &buffer) { - if (_queues[i].full()) + if GRAS_UNLIKELY(_queues[i].full()) { _queues[i].set_capacity(_queues[i].size()*2); } ASSERT(not _queues[i].full()); - if (buffer.length == 0) return; + if GRAS_UNLIKELY(buffer.length == 0) return; _queues[i].push_back(buffer); _enqueued_bytes[i] += buffer.length; __update(i); @@ -293,7 +299,7 @@ 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) { - if (bytes_consumed == 0) return; + if GRAS_UNLIKELY(bytes_consumed == 0) return; ASSERT(not _queues[i].empty()); ASSERT((bytes_consumed % _items_sizes[i]) == 0); |