pass array of objects to spawn
Ruslan Mullakhmetov
tiabaldu at gmail.com
Thu Nov 10 14:00:12 PST 2011
On 2011-11-11 01:23:01 +0400, Timon Gehr said:
> class Foo
> {
>
> }
>
> void worker( shared(Foo[]) data_ )
> {
> Foo[] data = cast() data_; // this cast is valid because data_ is
> never read from another thread after the cast
> //...
> }
>
> void main()
> {
> {
> auto data = new Foo[10];
> spawn( &worker, cast(shared)data ); // this cast is valid
> because data is an unique reference (therefore there are no unshared
> aliases)
> } // the sole reference to data in the main thread dies -> it will
> never be read from this thread again
> }
Thank you too. Unfortunately i got compilation error
thread.d(16): Error: cannot implicitly convert expression (data_) of
type shared(Foo)[] to Foo[]
--
BR, Ruslan Mullakhmetov
More information about the Digitalmars-d-learn
mailing list