[dmd-concurrency] synchronized, shared, and regular methods inside the same class

Graham St Jack graham.stjack at internode.on.net
Mon Jan 4 16:23:46 PST 2010


Walter Bright wrote:
> I figure that the main way to do multithreaded programming in D will 
> be with the message passing library that Sean is building. A user 
> using that should never see shared. Shared is for those cases that 
> cannot be done with message passing.
That's great, and I agree completely.

However, we need the tools to be able to write libraries of our own 
without any special back-door tricks. Therefore, we need a way to create 
shared objects that provide safe touching-points between threads, 
without seeing shared pop up everywhere.
>
> I think Go's channels are just message passing. The fundamental 
> problem with it in Go is Go has no concept of immutability, so there's 
> no way to guarantee safety.
Agreed - immutable is essential.


More information about the dmd-concurrency mailing list