black hole detection and concurrency
Simon Peyton-Jones
simonpj at microsoft.com
Mon Dec 29 09:21:34 EST 2008
| I have a good theory on the latter symptom (the "thread killed"
| message). Sticking in some traces, as in my appended code, helped me
| to see what's going on. It seems to be exactly what you describe --
| the variable v is permanently bound to the exception it "evaluates"
| to. Since the right hand True portion of the unamb evaluates more
| quickly, the spawned threads are killed and the left hand (the v)
| "evaluates" to "thread killed".
This is odd (to me). The "permanently bound" stuff applies only to *synchronous* exceptions, which thread-killing is not. Simon M will have more to say when he gets back
Simon
More information about the Glasgow-haskell-users
mailing list