Added extensive comments, fixed a consistency issue with the bufferSize vs BufferLength on the queue looping. Added debug print statements. Apaprently the code gets caught waiting once is enters the consumers.