Made _currentBatch volatile to make sure its value is always read from the memory
Added a memory barrier to prevent adding batches w/o the Count property set to the queue
Implemented manual flush