On 26/08/2010 06:57, Edward Z. Yang wrote:
Excerpts from Edward Z. Yang's message of Thu Aug 26 01:22:22 -0400 2010:
I spent some time looking at the code, and I've been having a difficult
time finding the thread ID of the worker thread that is performing the
safe FFI call.  The target TSO is the suspended Haskell thread, which
afaict is distinct from the worker thread that is actually doing the FFI
call, so the obvious Tasks from bound/cap seem to be the wrong ones.
Do I have to walk all_tasks to find the one that's running the call I care
about?

Of course, immediately after I send this message, my debug build finishes
and I find target->bound->task is the one I care about. :-)

target->bound->task is only present for a bound thread, for an ordinary unbound thread I think there is currently no (easy) way to get from the TSO to the Task. The InCall, which points to both the TSO and the Task, is stored on the cap->suspended_ccalls list, and you could find the right one by walking that list.

Cheers,
        Simon
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to