Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com Date: Mon, 16 Jul 2001 23:53:44 -0400 From: Christopher Faylor To: cygwin-developers AT cygwin DOT com Subject: process creation surgery Message-ID: <20010716235344.A6768@redhat.com> Reply-To: cygwin-developers AT cygwin DOT com Mail-Followup-To: cygwin-developers AT cygwin DOT com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i I just changed the way that the cygheap is allocated in an effort to eliminate the previously required synchronization between a cygwin parent process and its child. (I've had a few days on the beach to think about this...) Basically, I moved all of the cygheap copying to the parent, which creates a shared memory region that is used only by the child. This should mean that spawn/nowait and vfork should no longer hang when invoking a non-cygwin child since there is no need for the parent to wait around for a signal from the child indicating that the cygheap has been copied. However, this is a fairly major change and I expect that I probably got synchronization wrong somehow. I have tested this in a basic form using the limited facilities that I have available to me on vacation and it seems to work ok on Windows NT 4.0 and 95. If there are problems, I'll deal with them when I return from vacation. One obvious problem would be that the bash prompt shows up prior to a process exiting, so, e.g., you get a bash prompt in the middle of ls output. cgf