On 19.01.2010 01:40, Steve Borho wrote: > On Mon, Jan 18, 2010 at 6:20 PM, Adrian Buehlmann <adr...@cadifra.com> wrote: >> On 18.01.2010 22:43, Steve Borho wrote: >>> Since changeset dc0395b8dab6, overlay behavior on my development >>> machines has improved substantially. I see a lot fewer instances of >>> the overlays being out of sync with the working directory state. The >>> few times when things have been out of sync, an F5 has always brought >>> them together. >> >> That's interesting (see also [1] for reference). >> >> Or a bit frustrating, actually, because it means you must have hit >> the time limit that starts causing to ignore overlay requests if >> ::PathIsDirectory API calls are taking too long (we do a lot of these >> when searching for .hg dirs, that's why I've set a limit on them). >> >> (Maybe I should remove that limit altogether. Sigh.) > > Perhaps, especially now that the web-dav strangeness has been resolved. > >> Is it possible to know a bit more about your setup? >> >> What Windows version is that and on what hardware? >> >> What kind of disk? NTFS/FAT? Local or network? >> >> What use case exactly? > > Before that change I saw out-of-sync overlays on all three of the > machines I use on a daily basis, ranging from an old XP PC to a > quad-core Vista x64 machine, which was the main reason I had ruled out > that particular check. I didn't expect it to trigger on my newer > machines and the skew seemed to always be worst on the quad-core. Not > sure I can explain it except perhaps Vista and Win7 adds extra > overhead to that particular function call.
Vista and Win 7 started nailing us on multiple threads, which I haven't yet decided whether this is a good idea or not. Under the assumption that slot handlers are independent, this might be a good idea, but for usages like status icons of a VCS it is probably not. The overlay handler is not reentrant and thus has a crit section right at the top of CShellExtOverlay::IsMemberOf. Maybe that could cause some bad interlocking or something. I can't remember having seen those slowness errors in debug out on my old crappy Win XP. I also can't remember having seen any signs of multiple threads calling CShellExtOverlay::IsMemberOf ever. > I just assumed the badness was caused by my use of MQ and command line > scripts, but it works a lot better now. > >> Can you post some debug out examples containing >> >> hasHgDir: PathIsDirectory .... in X ticks >> >> lines? >> >> What X values do you see? (typicals, largers?) >> >> What values Y do see on >> >> ****** .... call took too long (Y ticks) >> >> lines? > > I'll see if I can capture some. Thanks. ------------------------------------------------------------------------------ Throughout its 18-year history, RSA Conference consistently attracts the world's best and brightest in the field, creating opportunities for Conference attendees to learn about information security's most important issues through interactions with peers, luminaries and emerging and established companies. http://p.sf.net/sfu/rsaconf-dev2dev _______________________________________________ Tortoisehg-develop mailing list Tortoisehg-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop