drain the queue and return the sum.
drain the queue and return the sum. If empty, return None
puts an item to the queue, optionally sums up the queue and returns value This never blocks interally.
puts an item to the queue, optionally sums up the queue and returns value This never blocks interally. It uses offer. If the queue is full, we drain, sum the queue.