| 118 | } |
| 119 | |
| 120 | void CircularBlockBuffer::incrementReadPointer(int n, bool blocking) { |
| 121 | int _available = available_read(); |
| 122 | |
| 123 | if (_available < n) { |
| 124 | _underflow_count += n - _available; |
| 125 | } |
| 126 | |
| 127 | _reserve_read_total = max(0, _reserve_read_total - _reserve_read); |
| 128 | _reserve_read = blocking ? n : 0; |
| 129 | _reserve_read_total += _reserve_read; |
| 130 | |
| 131 | // points to next available read Block |
| 132 | _readBlock = positiveOffset(_readBlock, n); |
| 133 | _buffer_fill -= n; |
| 134 | } |
| 135 | |
| 136 | int CircularBlockBuffer::get_num_underflow() const { |
| 137 | return _underflow_count; |