Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Mon, 24 Jul 2000 00:15:46 -0400 From: Chris Faylor To: cygwin AT sourceware DOT cygnus DOT com Subject: Extending cygwin's process table (progress report) Message-ID: <20000724001546.A24454@cygnus.com> Reply-To: cygwin AT sources DOT redhat DOT com Mail-Followup-To: cygwin AT sourceware DOT cygnus DOT com References: <20000718234319 DOT A16333 AT cygnus DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2i In-Reply-To: <20000718234319.A16333@cygnus.com>; from cgf on Tue, Jul 18, 2000 at 11:43:19PM -0400 On Tue, Jul 18, 2000 at 11:43:19PM -0400, cgf wrote: >I am planning on revamping cygwin's process table for version 1.1.4. >I hope to make process creation a little faster and to also allow many >more cygwin processes. > >I'm also toying with trying to more closely tie cygwin pids to windows >pids. > >Is anyone going to be bothered if pid creation is not monotonic? By >that I mean, parent pid 1000 may not create child pid 1001. It may >create child pid 27. > >It may still not be feasible to use cygwin pids as windows pids >(possibly because I don't believe that pid 1 is special to windows) but >I thought I'd give this a try anyway unless there is something that I'm >missing. Ok. I have pulled apart cygwin's process table creation and reimplemented everything using windows pids. The result is pretty incredible. Cygwin is noticeably faster. I use zsh on cygwin and it usually takes 2.5 seconds to start up (I've timed it quite a bit). With my changes, startup time is under a second. I do use windows pids wherever possible but execed processes still have their normal split personality. If a process is execed, as far as cygwin is concerned, it maintains the same "Windows PID" throughout its lifetime. As far as Windows is concerned, there are, unfortunately, still multiple pids to contend with. The 'ps' output of an execed process shows the original pid, while 'ps -l' will show the current windows pid, just as always. It's unfortunate that there is nothing like an exec for Windows (unless I wanted to be NT specific) but I think that the performance gains are worth the potential user confusion. I still have some issues to work out but this is looking pretty good. FYI, these changes will not be in cygwin 1.1.3. cgf -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com