extend from Thread::Queue
implement various ways of handling a max size on the queue