how to use shared keyword in 2.063 version?

Andrey vangelisforever at yandex.ru
Mon Jun 3 04:32:28 PDT 2013


On Saturday, 1 June 2013 at 16:00:58 UTC, Jonathan M Davis wrote:
> 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


Thank you!  Now my app works fine.


More information about the Digitalmars-d-learn mailing list