public V get(Object key) { synchronized (mutex) { ... } }
public V put(K key, V value) { synchronized (mutex) { ... } }
public V remove(Object key) { synchronized (mutex) { ... } }
> From a correctness standpoint, this strategy is almost trivial to reason about.
It is indeed trivial to reason about. This design invites users to stumble into the race condition between get and set.
It is indeed trivial to reason about. This design invites users to stumble into the race condition between get and set.
firefox's reader view helps too