std.concurrent Tid vector initialization problem

Ali Çehreli via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Jun 27 18:05:43 PDT 2015


On 06/27/2015 06:00 PM, Charles Hixson via Digitalmars-d-learn wrote:
> I'm planning an application where a series of threads each need to be
> aware of the Tids of all the others.  The number won't be known at
> compile time, but that doesn't seem to change the design.
>
> All I've been able to come up with is a pair of loops, one to spawn the
> threads, and collect their Tids, and a second for each one to send its
> Tid to all the others.  receive doesn't seem to want to work with shared
> Tids.  My original design was to have a file level shared array of Tids,
> but receive (or possibly send) objected to attempts to use them.  They
> aren't known until they've been spawned, so I can't pass them as spawn
> parameters.  Etc.
>
> This seems like a very clumsy initialization design.  Does anyone have a
> better idea?
>
> (The rough estimate of the number of Tids is six, but that's likely to
> change from run to run.)

register(), unregister(), and locate() may be useful:

   http://dlang.org/phobos/std_concurrency.html#.register

I have a short example in the "Thread names" section here:

   http://ddili.org/ders/d.en/concurrency.html

Ali



More information about the Digitalmars-d-learn mailing list