Get a Reference to an Object's Monitor
    Andrew Wiley 
    wiley.andrew.j at gmail.com
       
    Tue Dec 20 16:22:44 PST 2011
    
    
  
On Tue, Dec 20, 2011 at 3:40 PM, bearophile <bearophileHUGS at lycos.com> wrote:
> Andrew Wiley:
>
>> I suspect the reason they advise not using it in user code is that the
>> monitor is lazily initialized (if I remember correctly), so I'd have
>> to initialize it myself.
>
> I see.
It looks like Sean is ahead of me:
>From core.sync.mutex:
this(Object o);
Initializes a mutex object and sets it as the monitor for o.
So my example would look like:
---
synchronized class Example {
private:
   Condition _condition;
public
   this() {
       auto lock = new Mutex(this);
       _condition = new Condition(lock);
   }
   void methodA() {
       // do some stuff
       while(someTest)
           _condition.wait();
   }
   void methodB() {
       //do some stuff
       _condition.notifyAll();
   }
}
---
    
    
More information about the Digitalmars-d
mailing list