Coordinates concurrent requests for the same key.
Implementations can reduce duplicate work by running block once and making other callers wait for that result.
block