block manager synchronizes on self for coherent read/writes to blocking state across threads, but we want to be able to have performant reads on the main thread.