Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 Sep 1997 13:56:23 -0600 (MDT)
From:      Nate Williams <nate@mt.sri.com>
To:        "John S. Dyson" <toor@dyson.iquest.net>
Cc:        nate@mt.sri.com (Nate Williams), dyson@freebsd.org, karpen@ocean.campus.luth.se, current@freebsd.org
Subject:   Re: FYI: regarding our rfork(2)
Message-ID:  <199709191956.NAA20377@rocky.mt.sri.com>
In-Reply-To: <199709191848.NAA02645@dyson.iquest.net>
References:  <199709191604.KAA19167@rocky.mt.sri.com> <199709191848.NAA02645@dyson.iquest.net>

next in thread | previous in thread | raw e-mail | index | archive | help
John S. Dyson writes:
> Nate Williams said:
> > John S. Dyson writes:
> > [ New shared everything call being added ]
> > 
> > I wrote:
> > > > it seems that sharing the stack
> > > > is asking for nothing but trouble.
> > 
> > John responds:
> > 
> > > I don't disagree with what you are saying, however, we need to be able
> > > to have full access to the stacks in every thread.  Of course, we would
> > > be wise to create guard page(s) between stacks.
> > 
> > Why do we need to have access to the stack?  Is it *only* for the thread
> > 'kernel' that runs in user-land that does the 'context-switching'
> > between the threads, or will each thread have access to another thread's
> > stack.  I can definitely see the need for the former, but *NOT* the
> > latter.
>
> Actually, both need it.  Otherwise, we will be incompatible with the rest
> of the world.

Sean Fagan and I have been having an off-line discussion, and I know
understand the reasons for doing it this way.  However, although I
understand the reasons, I can also see where doing so makes it *much*
more difficult to write 'correct' threaded programs, where I define
correct as the ability to run w/out stepping on yourself in *all*
cases.  Note, I said difficult, not impossible.

I now understand many of the design decisions behind why Java does thing
the way that it does.  (Not too say that it's the best solution, but I
do think they did a *lot* of things right.)

> > The great strength about Unix is that another 'process' can'tt muck with
> > another 'processes' easily, and with threads I'd like to see this taken
> > to whatever extreme as possible given the constraints of implementation.
> 
> The threads are a different issue.  I don't disagree with the threads
> stacks being isolated for philosophical reasons -- however it is just
> wrong from a compatibility standpoint.  If we had a type of thread
> that had isolated stacks, it would be nice, but that is a different
> exercise.

One that would be worthwhile, IMHO. :) :) :)


Nate



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199709191956.NAA20377>