Fix race condition caused by concurrent access to global cache

parent #437 
Might be worthwhile to add this as a utility method? Avoids having to specify the `bufferSize` and `useAsync` every time.