Thought some more about this. Looks like we'll need to place the cache get inside the mutex block if we want this behavior.

The current code doesn't break any store semantics as the latest value in backing store is written to cache.

So we can either keep the existing behavior and revisit if this turns out to be a perf issue, or, make the mutex block larger. I propose we do the former.

@MansurAshraf @johnynek thoughts?