I don't know if this behavior is intended, but because of that i can't keep an actual pos value for my own use, because when Sink is emptied get_pos still yields non zero value. I think that Sink should reset its pos if there is nothing in the queue.