delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/1997/10/31/11:45:53

From: cgf AT bbc DOT com (Chris Faylor)
Subject: Re: more questions
31 Oct 1997 11:45:53 -0800 :
Message-ID: <EIxJnI.4Kt.cygnus.gnu-win32@bbc.com>
References: <m0xR5tN-0010wpC AT malasada DOT lava DOT net>
Reply-To: cgf AT bbc DOT com
To: gnu-win32 AT cygnus DOT com

In article <m0xR5tN-0010wpC AT malasada DOT lava DOT net>,
Tim Newsham <newsham AT lava DOT net> wrote:
>- pinfo is locked for the duration of the fork() operation.  Does this
>  lock the current process slot or the entire process table?
>  If the entire table, couldnt the exclusion interval be shortened
>  to just grabbing the new slot?  Seems like some parallelism is
>  being wasted here.

The entire process table is locked.  Locking just slots would be sort
of complicated and/or resource intensive, I think.

>- In fork the fork helper the stack is copied as:
>    rc = copy (child->hProcess, &x, u->initial_sp, 3);
>  which assumes (I assume :) that "x" is at the bottom of
>  the stack.  This is not documented anywhere that I can
>  see in the src (DANGER!) and a quick look at the src
>  doesn't convince me that it is at the bottom of the stack.
>  Is it?  If not, couldn't this cause some obscure bugs?

Theoretically, it could.  I think that the theory is that the local
variables are not used in the forked process so that it doesn't really
matter.

>  Maybe the address should be taken from a local in a
>  called frame:
>     get_stacktop() { int x; return &x; }
>  or maybe the address should be rounded down to an even
>  page?

Are stacks guaranteed to be allocated on a page by page basis?  Probably.

>- In the fork helper the child (after longjmp'ing from crt0)
>  sets the process mask.  Isn't this copied over from the parent?
>  If its not, isn't there a race condition here between when
>  the child is created (or the process table entry is created)
>  and when this line is reached?

In recent (i.e, coolview) versions there should be no race.  I do
remember thinking the same thing when I looked at that code a while ago
and submitted a patch for B19.

cgf
-- 
http://www.bbc.com/	cgf AT bbc DOT com			"Strange how unreal
VMS=>UNIX Solutions	Boston Business Computing	 the real can be."
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request AT cygnus DOT com" with one line of text: "help".

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019