[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [DotGNU]Re: Thread.Join and the main thread

From: Thong (Tum) Nguyen
Subject: RE: [DotGNU]Re: Thread.Join and the main thread
Date: Thu, 20 May 2004 17:56:11 +1200

> -----Original Message-----
> From: Russell Stuart [mailto:address@hidden
> Sent: Thursday, 20 May 2004 12:39 p.m.
> To: Thong (Tum) Nguyen
> Cc: DotGnu-Develop
> Subject: [DotGNU]Re: Thread.Join and the main thread
> On Thu, 2004-05-20 at 03:38, Thong (Tum) Nguyen wrote:
> > I can see two obvious solutions.  Solution 1 is for ilrun to create a
> new
> > thread for Main to run under (not the main system thread).  That way,
> the
> > thread which executes the program entry point won't be the thread which
> ends
> > up waiting for foreground threads to finish.  Solution 2 is to allow the
> > ilrun's main to call some new method (ILThreadMainFinished?) after the
> > program's entry point has been called but before it waits on all
> foreground
> > threads to finish.  The method would cause all threads waiting to join
> on
> > the main system thread to exit.
> >
> > Solution 1 seems cleanest and lest hackish to me (by far) but does
> require
> > that even the simplest of programs (on multithreaded profiles) to have
> two
> > threads (three if you include the finalizer thread).  What do you think?
> My personal preference for threads is that in a non-threaded program
> there shouldn't be any extra threads.  Indeed, I would like to see
> hb_gc.c not start a finalizer thread if there is only one thread running
> - instead it should just run the finalizers synchronously.

Making the GC synchronous until the first thread is created is something I
was considering.  However, that doesn't solve the mainThread.Join() issue.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]