On Jan 24, 2013, at 5:58 AM, "monarch_dodra" <[email protected]> wrote:

> On Thursday, 24 January 2013 at 13:45:18 UTC, David Nadlinger wrote:
>> On Thursday, 24 January 2013 at 10:57:26 UTC, Stephan wrote:
>>> So my first question is: Where does the LinkTerminated Exception come from, 
>>> when the only functions from std.concurrency that I use are "spawn" and 
>>> "receiveOnly".
>> 
>> To track this down, what about looking at the std.concurrency source and 
>> placing a breakpoint at the appropriate line in MessageBox.get()?
>> 
>> David
> 
> Yeah, I've been playing with std.concurrency too lately, and getting random 
> bugs. I'll try to formalize them into formal requests.
> 
> BTW: Question: Is "LinkTerminated" a priority message? I've been avoiding 
> using SpawnLinked because I've been unable to effectively end my workers. 
> Maybe I just suck though...

It's a control message. These are messages generated automatically by 
std.concurrency rather than sent by the user. They live in the normal message 
queue and so are processed when receive doesn't find a match earlier in the 
queue. The idea is that if an owner sends a spawned thread a bunch of messages, 
the spawned thread should have an opportunity to process those messages before 
receiving an OwnerTerminated message.  Making them priority messages would make 
designing predictable algorithms difficult. 

Reply via email to