delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/2001/09/08/20:26:14

Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-developers-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-developers/>
List-Post: <mailto:cygwin-developers AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-developers-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-developers-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com
Subject: Re: cygwin slowdown in current cvs version
From: Robert Collins <robert DOT collins AT itdomain DOT com DOT au>
To: cygwin-developers AT cygwin DOT com
In-Reply-To: <20010908201640.B22847@redhat.com>
References: <130160175780 DOT 20010908204017 AT logos-m DOT ru>
<127165775081 DOT 20010908221336 AT logos-m DOT ru>
<186168543292 DOT 20010908225944 AT logos-m DOT ru> <20010908155203 DOT C12571 AT redhat DOT com>
<20010908222326 DOT B937 AT cygbert DOT vinschen DOT de>
<20010908164412 DOT B13528 AT redhat DOT com> <999994387 DOT 9504 DOT 118 DOT camel AT lifelesswks>
<20010908201640 DOT B22847 AT redhat DOT com>
X-Mailer: Evolution/0.13 (Preview Release)
Date: 09 Sep 2001 10:26:49 +1000
Message-Id: <999995212.11607.7.camel@lifelesswks>
Mime-Version: 1.0
X-OriginalArrivalTime: 09 Sep 2001 00:13:43.0808 (UTC) FILETIME=[49542000:01C138C4]

On Sun, 2001-09-09 at 10:16, Christopher Faylor wrote:
> On Sun, Sep 09, 2001 at 10:13:06AM +1000, Robert Collins wrote:
> >On Sun, 2001-09-09 at 06:44, Christopher Faylor wrote:
> >> On Sat, Sep 08, 2001 at 10:23:26PM +0200, Corinna Vinschen wrote
> >> 
> >> If we were going to do that, though, we should set up one global "change
> >> notification" handle for /etc/group and /etc/passwd, right?
> >
> >After a quick MSDN scan, I couldn't see any per file scanning mechanism.
> >which means notification on /etc is about it (barring fancy tricks like
> >/etc/changingdata/passwd and /etc/passwd->changindata/passwd :])
> 
> A google search reveals some undocumented calls that allow you to track
> all sorts of things.
> 
> After a little more testing, it seems like the slowdown is actually due
> to the FindFirstChangeNotification call.  If I add that and avoid the
> WaitForSingleObject, I still get a noticeable slowdown.

mm, let me see.. that FindFirstChangeNotification should only get called
once in each process? It sounds like you are saying that having called
it, everything slows down - but that doesn't sound right to me. Explorer
uses this all the time, for every open window, and it's still
responsive.

I have an idea though: what if change notifications are queueing?
ie 
 else if (hchanged && WaitForSingleObject (hchanged, 0) ==
WAIT_OBJECT_0)
       {
       (void) FindNextChangeNotification (hchanged);
     while (WaitForSingleObject (hchanged, 0) == WAIT_OBJECT_0)
         (void) FindNextChangeNotification (hchanged);

      small_printf ("/etc changed\n");
if (fstat(...))
       state = uninitialized;
        }

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019