wait how can you tell the caller does that? I'd feel much better if the state of the latch is well defined here and we don't rely on the caller to not catch the exception?