From: Johannes Schindelin Date: Wed, 23 Jul 2008 09:17:00 GMT Subject: Re: [PATCH v2] git daemon: avoid waking up too often Message-ID: In-Reply-To: <4886D503.7030106@viscovery.net> Hi, On Wed, 23 Jul 2008, Johannes Sixt wrote: > Johannes Schindelin schrieb: > > To avoid waking up unnecessarily, a pipe is set up that is only ever > > written to by child_handler(), when a child disconnects, as suggested > > per Junio. > > > > This avoids waking up the main process every second to see if a child > > was disconnected. > > This makes porting this beast to Windows practically impossible because we > cannot have a poll() implementation that waits both on a listening socket > and a pipe. :-( Umm. We also do not have signal handlers, do we? AFAICT you wanted to simulate _this_ program's fork() with a start_async(), right? All you have to do is to refactor the code with the pipe to do the update (properly guarded by a mutex, which is called "CriticalSection" in Windows speak, since it is impossible for Microsoft to accept common conventions). The biggest part to get this beast running on Windows is to move it to the start_async() method, not above-mentioned refactoring. Ciao, Dscho