return btr_pool_size(btrp) - btr_pool_filled(btrp);
}
+/*
+ * Return maximal size available for one read. This is
+ * smaller than the value returned by btr_pool_unused().
+ */
size_t btr_pool_available(struct btr_pool *btrp)
{
if (!btrp->whead)
size_t btr_get_input_queue_size(struct btr_node *btrn)
{
struct btr_buffer_reference *br;
- size_t size = 0;
+ size_t size = 0, wrap_consumed = 0;
FOR_EACH_BUFFER_REF(br, btrn) {
- //PARA_CRIT_LOG("size: %zu\n", size);
+ if (br->wrap_count != 0) {
+ wrap_consumed = br->consumed;
+ continue;
+ }
size += br_available_bytes(br);
}
+ assert(wrap_consumed <= size);
+ size -= wrap_consumed;
return size;
}
{
size_t iqs;
- if (!btrn)
- return 0;
+ assert(btrn);
if (type != BTR_NT_LEAF) {
if (btr_no_children(btrn))
return -E_BTR_NO_CHILD;