sclass ExternalMutex /*implements AutoCloseable*/ { int referenceCount; void incRefCount { referenceCount++; ifdef ExternalMutex_debug print(toStringWithIdentity(this) + " referenceCount++ => " + referenceCount); endifdef } int decRefCount() { --referenceCount; ifdef ExternalMutex_debug print(toStringWithIdentity(this) + " referenceCount-- => " + referenceCount); endifdef ret referenceCount; } /*public void close { var map = externalMutexMap(); synchronized(map) { if (--referenceCount == 0) map.remove(this); } }*/ }