Is there any way to get a reference to an object's monitor? This would be very useful because a Condition has to be tied to a Mutex, and since objects already have a reference to a Mutex built in, it doesn't make much sense to create another (and add another reference to the class) when the end effect is the same.
Example: --- class Example { private: Mutex _lock; Condition _condition; public this() { _lock = new Mutex(); _condition = new Condition(_lock); } void methodA() shared { synchronized(_lock) { // do some stuff while(someTest) _condition.wait(); } } void methodB() shared { synchronized(_lock) { //do some stuff _condition.notifyAll(); } } } --- If I could get a reference to Example's monitor, this example becomes: --- synchronized class Example { private: Condition _condition; public this() { _condition = new Condition(this.__monitor); } void methodA() { // do some stuff while(someTest) _condition.wait(); } void methodB() { //do some stuff _condition.notifyAll(); } } --- Which is much more fool-proof to write.