static AutoCloseable tempExternalMutexFor(O o) { Map map = externalMutexMap(); synchronized(map) { O mutex = map.get(o); if (mutex == null) map.put(o, mutex = new ExternalMutex); mutex.referenceCount++; ret mutex; } }