add counting semaphore util
use counting semaphore in QueuingWriter
add alternate implementation for QueuingWriter
writer test stuff