Calculates the value once and only once (using a lazy val), returning the result, use this approach for expensive calculations.
Removes the value, returning either it or a new item (stops end code worrying about nulls etc..
retrieves the value of a concurrent hashmap against a given key, creating if necessary.
retrieves the value of a concurrent hashmap against a given key, creating if necessary. Note it makes no gaurantee of once only semantics for the value generation
Simple helper functions to get and remove ConcurrentLinkedQueues from a ConcurrentHashMap