I'm want to "play" a bit with thread syncronization...

So this is a (big) part of my code. The other is the imports, the thread starting and the printing of x.

shared int x;
shared Semaphore sema;

void main(string[] args)
{
        auto t1 = new Thread(&f);
        auto t2 = new Thread(&g);
        
        sema = new Semaphore(1); // error here

The error is: Error: cannot implicitly convert expression (new Semaphore(1u)) of type core.sync.semaphore.Semaphore to shared(Semaphore)

I understand what the error means, I just don't know how to fix it (to make it explicit). I tried new shared (Semaphore(1)) but doesn't work.

Reply via email to