I am wondering should we use a ConcurrentLinkedQueue here instead?  It is a collection that provides duplicates but in a non blocking fashion.