how to use shared keyword in 2.063 version?

Jonathan M Davis jmdavisProg at gmx.com
Sat Jun 1 09:00:37 PDT 2013


On Saturday, June 01, 2013 10:03:28 Andrey wrote:
> On Saturday, 1 June 2013 at 00:58:00 UTC, Jonathan M Davis wrote:
> > On Friday, May 31, 2013 23:26:19 Anthony Goins wrote:
> >> To create a shared object you need shared this ctor.
> >> 
> >> immutable this() for immutable,
> >> 
> >> and const this() for const.
> >> 
> >> Check out the change log. #2 on the list.
> > 
> > Either that or you create it as thread-local and cast to shared.
> > 
> > - Jonathan M Davis
> 
> Does it mean, that to create shared Mutex or shared Socket for
> example, I have to use next construction:
> 
> 	shared Socket socket = cast(shared Mutex)(new Socket());
> 
> 	shared Mutex m = cast(shared Mutex)(new Mutex());

Given the lack of shared constructors, yes - though you should probably write 
it more like

    auto mutex = cast(shared)new Mutex;
    auto socket = cast(shared)new Socket;

since then you don't have to worry about accidentally changing the base type 
(like you did with the Socket), and you don't have to write the type multiple 
times.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list