module LogCourier

This is a queue implementation dervied from SizedQueue, but with a timeout.

It is significantly faster than using SizedQueue wrapped in Timeout::timeout because it uses mutex.sleep, whereas Timeout::timeout actually starts another thread that waits and then raises exception or has to be stopped on exiting the block.

The majority of the code is taken from Ruby's SizedQueue<Queue implementation.

Name calculation from HELO/VERS