Mail Archives: cygwin-developers/2001/09/08/21:00:24
On Sun, Sep 09, 2001 at 10:26:49AM +1000, Robert Collins wrote:
>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.
My test just added an essentially "do nothing"
FindFirstChangeNotification call. Other than calling this function,
cygwin should have been equivalent to its state prior to Corinna's
change. Just the one call caused a slowdown.
I think I was wrong when I said that FindFirstChangeNotification caused
a slowdown relative to Corinna's other method. That doesn't seem to
be the case. I was probably comparing the wrong things.
I changed things so that the handle from FindFirstChangeNotification is
opened once and passed to all children. That seemed to help things a
lot. It's nearly as fast as 1.3.2, now, AFAICT.
I'll submit a patch for Corinna's review as soon as I have convinced
myself that I haven't somehow fooled myself about this. I'm rebuilding
an honest-to-goodness 1.3.3 release now so that I can compare DLLs
which were built equivalently.
cgf
- Raw text -