Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com From: "Chris January" To: Subject: RE: Mozilla 1.3 built on cygwin? Date: Sat, 29 Mar 2003 00:04:01 -0000 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Importance: Normal In-Reply-To: <20030328234857.GA971@redhat.com> > On Thu, Mar 27, 2003 at 11:58:50PM +0100, Ralf Habacker wrote: > >I can't prove a fact, that forking is the most anonying problem > and there were > >some initial work from some people (I remember Chris Faylor, > Chris January and > >other) to identify the problems and to implement a new > copy-on-write semantic, > >which will be much faster, > > You misremember. I did hobble together a copy-on-write > implementation and found > that it was actually slower. The generic win32 implementation of > copy-on-write > isn't powerful enough to completely implement fork anyway. Noone has explained, however, *why* the copy-on-write implementation was slower. Perhaps we have just been using the wrong tests. Does copy-on-write actually perform slower in "real world" tests? I don't know, because I only used the skeleton example found in Nebbit's book. Unfortunately I can't work on this anymore as I have seen the fork () code in WinNT POSIX. That code is the kind of thing it would be nice to have in Cygwin. I can't compare perfomance, however, as WinNT POSIX has significantly different overheads to Cygwin. I am trying to persuade Andrew to release his code under another license since non-GPL compatible open source programs can't currently be linked against it. If he does choose to do this and the new license is GPL compatible I will look at this again. I am also willing to talk anyone else through the process of writing a copy-on-write fork () implementation. The problem in KDE is that you can't just optimise away the fork/exec pairs using vfork/spawn, because the fork is abstracted in a class and you don't know what the calling code's intentions are. I also am working on a native exec () implementation that doesn't spawn a new process. However I don't think this will give any significant speed-up over CreateProcess and I doubt very much you will ever see it in Cygwin. Chris -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/