compilation error with shared ReadWriteMutex

jj75607 via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Jun 30 05:18:07 PDT 2016


I wrote shared class with rwmutex

   import core.sync.rwmutex;
   shared class Shared
   {
       ReadWriteMutex rwmutex;
       int[] items;

       this()
       {
           rwmutex = new ReadWriteMutex();
       }
   }

But it fails with:

   Error: cannot implicitly convert expression (new 
ReadWriteMutex(cast(Policy)1)) of type 
core.sync.rwmutex.ReadWriteMutex to shared(ReadWriteMutex)

I add `shared' keyword to the `rwmutex' variable

   shared class Shared
   {
       shared(ReadWriteMutex) rwmutex;
       int[] items;

       this()
       {
           rwmutex = new shared(ReadWriteMutex)();
       }
   }

And got another compilation error:

   Error: non-shared method core.sync.rwmutex.ReadWriteMutex.this 
is not callable using a shared object

How can I use shared class with mutex correctly?



More information about the Digitalmars-d-learn mailing list