I don't know if the bug would explain <<loop>>. My guess is that the black-hole-detection code is incorrectly concluding there is a black hole because a thunk was marked as in the process of being evaluated, then the evaluating thread is killed without unmarking the thunk, and then another thread needs the whnf. This is a fairly naive guess. I don't know this machinery well enough to have confidence.
What do you think?
- Conal
Conal Elliott wrote:Ok, we can fix the fairly simple bug that a thread created in blocked mode blocks throwTos after the thread has finished. But I'm slightly suspicious of the <<loop>> results you were getting - does this bug explain those too?
Indeed -- many thanks to Bertram, Sterling, Peter & others for the help! I think getting this bug fixed will solve Reactive's mysterious bugs and unblock its progress.
Cheers,
Simon