X-Spam-Check-By: sourceware.org Date: Thu, 16 Nov 2006 07:42:11 -0500 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: Excessive thrashing when popen()ing after a large malloc() Message-ID: <20061116124211.GA27414@trixie.casa.cgf.cx> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <4559D376 DOT 9030707 AT byu DOT net> <20061115165133 DOT GA21115 AT trixie DOT casa DOT cgf DOT cx> <455BD867 DOT 8090702 AT cwilson DOT fastmail DOT fm> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <455BD867.8090702@cwilson.fastmail.fm> User-Agent: Mutt/1.5.11 Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Unsubscribe: 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 On Wed, Nov 15, 2006 at 10:17:59PM -0500, Charles Wilson wrote: >Christopher Faylor wrote: > >>Fully implementing posix_spawn is quite a bit of work although I did >>tell Linus Torvalds that I'd look into implementing it in Cygwin >>eventually (it would make git-on-cygwin faster). >> >>I have a patch in my sandbox which implements a more lightweight >>approach for popen using cygwin internals. > >Don't you go thru this exercise about every two years? > >1) fork/exec implementation in cygwin sux >2) attempt to rewrite cygwin internals to use symantics of >spawn|vfork|some-other-clever-idea >3) it breaks a bunch of stuff >4) try to patch around the problems, repeat #3 >4) revert back to original fork/exec implementation > >What's different this time? (Really, I'm not being snarky, and maybe >I'm misremembering, but I'd hate to see precious developer time spent in >#2 thru #4 if #5 will happen anyway -- if the past is any guide.) I did try one time previously to implement vfork/exec transparently as just a call to spawn* but my implementation caused more problems than it solved. That is not the same thing as implementing popen via spawn which is a more tractable issue. cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/