On Tuesday, 22 January 2013 at 12:27:12 UTC, Martin Drasar wrote:

Hi,

wouldn't this help you?

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

According to documentation: Executes the supplied function in a new context represented by Tid. This new context is linked to the calling
context so that if either it or the calling context terminates a
LinkTerminated message will be sent to the other, causing a
LinkTerminated exception to be thrown on receive(). The owner
relationship from spawn() is preserved as well, so if the link between
threads is broken, owner termination will still result in an
OwnerTerminated exception to be thrown on receive().

Martin

Thanks. I tried using it, but it is giving me problems in the sense that: 1) If the worker sends a message, and then dies, the "LinkTerminated" message is sometimes not caught by the owner. 2) When the worker needs to die its natural death, it is creating some LinkTerminated errors :/

Gotta keep tinkering.

On Tuesday, 22 January 2013 at 14:47:10 UTC, Ali Çehreli wrote:
On 01/22/2013 04:26 AM, Martin Drasar wrote:
> On 22.1.2013 11:08, monarch_dodra wrote:
>> I was trying to do a simple program to test message passing.

> wouldn't this help you?
>
> http://dlang.org/phobos/std_concurrency.html#.spawnLinked

The following chapter may be helpful as well:

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

Especially the following sections:

- Exceptions during the execution of the worker

- Detecting thread termination

- Receiving exceptions as messages

Ali

TY. Gonna read everything.

Reply via email to