Something needs to happen with shared, and soon.

Jacob Carlborg doob at me.com
Thu Nov 15 02:14:54 PST 2012


On 2012-11-15 10:22, Manu wrote:

> Not to repeat my prev post... but in reply to Walter's take on it, it
> would be interesting if 'shared' just added implicit lock()/unlock()
> methods to do the mutex acquisition and then remove the cast
> requirement, but have the language runtime assert that the object is
> locked whenever it is accessed (this guarantees the safety in a more
> useful way, the casts are really annying). I can't imagine a simpler and
> more immediately useful solution.

How about implementing a library function, something like this:

shared int i;

lock(i, (x) {
     // operate on x
});

* "lock" will acquire a lock
* Cast away shared for "i"
* Call the delegate with the now plain "int"
* Release the lock

http://pastebin.com/tfQ12nJB

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list