Correct way to spawn many and stoping when one finishes ?
klimp via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Apr 13 07:02:52 PDT 2016
On Tuesday, 12 April 2016 at 12:12:19 UTC, Steven Schveighoffer
wrote:
> On 4/10/16 4:59 AM, klimp wrote:
>> On Sunday, 10 April 2016 at 07:48:51 UTC, klimp wrote:
>>> Is this corrrect ? Each task searches for the same thing so
>>> when once
>>> has found the others don't need to run anymore. It looks a
>>> bit strange
>>> not to stop those who havent find the thing:
>> How can I kill a Tid ?
>
> Short answer: don't.
>
> This is kind of why there isn't a handy function to do so.
>
> If you kill a thread, there is no telling what state it is in,
> what locks it has held, etc.
>
> The best (and really only) way to manage threads is through a
> loop that checks periodically whether it should quit.
>
> -Steve
I've solved the problem by atomically reading/writing a shared
bool.
That works fine, though I don't really need spawn() anymore.
core.thread.Thread with a callback is widely enough.
More information about the Digitalmars-d-learn
mailing list