Now using a thread to pull from the tail queue, but it only wakes when you pop from an empty out_buffer