[Mono-list] Thread.Suspend

Martin Baulig martin@gnome.org
02 Feb 2003 11:10:25 +0100


Dick Porter <dick@ximian.com> writes:

> On Sat, 2003-02-01 at 17:25, tapia wrote:
> > Hi.
> > 
> > I'm coding a little app using System.Threading.Thread, and I've seen
> > that the Suspend() method is not implemented.
> 
> Suspend() will probably never be implemented while we use the boehm gc
> lib.
> 
> The reason is that boehm gc needs to suspend threads itself when it
> stops the world to do a collection, and will deadlock if a thread is
> already suspended by some other means.

Can't we find some solution for this, ie. patch boehm a little bit.

I think all we need to do is replacing GC_stop_world() and GC_start_world() with our own
functions.  This could be done with a function vtable, so we'd get something which we
could submit to the boehm people for inclusion in their next release.

-- 
Martin Baulig
martin@gnome.org
martin@ximian.com