[Mono-devel-list] Embeding MONO and (p)threads
David Jeske
jeske at chat.net
Tue Aug 12 13:44:20 EDT 2003
On Tue, Aug 12, 2003 at 10:55:07AM +0100, Dick Porter wrote:
> > Why does libgc need to override pthread functions?
>
> It needs to be able to stop all the threads when it does a collection,
> and therefore it needs to know about all threads. Theres some
> documentation about why its done by cpp tricks rather than dynamic
> linker tricks, but I can't remember the details offhand.
I see. The hard requirement is that when mono code is executing, the
stack in use must be for a thread which is known to libgc, so it gets
a full view of the root set during collection.
In theory everything would work correctly if a call into Mono thunked
into another thread created by the Mono runtime/libgc thread
calls. This seems somehow safer anyhow.
I wonder if the Native Posix Thread Library in RedHat 9 does anything
to make this easier:
http://people.redhat.com/drepper/nptl-design.pdf
--
David Jeske (N9LCA) + http://www.chat.net/~jeske/ + jeske at chat.net
More information about the Mono-devel-list
mailing list