pipe_occupancy
count = pipe_occupancy(head, tail);
n = pipe_occupancy(head, tail);
if (remain && pipe_occupancy(pipe->head, tail) > 0)
return !pipe_occupancy(head, tail);
return pipe_occupancy(head, tail) >= limit;
return pipe_occupancy(pipe->head, pipe->tail);