File operations really slow in emacs

Ryan Johnson ryan.johnson@cs.utoronto.ca
Tue Feb 14 19:50:00 GMT 2012


On 14/02/2012 12:57 PM, Corinna Vinschen wrote:
> On Feb 14 12:46, Ryan Johnson wrote:
>> On 14/02/2012 11:26 AM, Corinna Vinschen wrote:
>>> On Feb 14 10:47, Ryan Johnson wrote:
>>>> On 14/02/2012 10:17 AM, Corinna Vinschen wrote:
>>>>> Does anybody know a system call which allows to fetch the network drive
>>>>> state (connected/not connected) without a billion microsecond timeout?
>>>> [...]
>>>> What if we parsed the mount table instead of calling readdir? I
>>>> don't know how that's computed, but it's never been a performance
>>>> problem, it only shows drives that are actually connected [...]
>>> What mount table?  Cygwin's?  It calls GetFileAttributes on the drive's
>>> root dir as well...
>> This is bizarre... what would cause calls to the same Windows API
>> function behave so differently when called by stat vs ls vs
>> bash-autocomplete? I'm happy to accept that there's some weirdness
>> on my box, but I would have expected that weirdness to be consistent
>> at any given instant in time (either all go slow or all behave
>> normally).
> SMB just is not consistent.  More often than not the timing behaviour is
> just plain puzzeling.  And, btw., in *my* testing I got hangs in mount
> as well if I disabled the remote share.  But only once.  Subsequent
> calls were fast.  And after enabling the remote share, mount happily
> ignored that fact for about a minute or so.  Caching, anybody?
Heisenburg? Impossible to know both what SMB share a mount points to and 
whether it's currently connected?

It's really unfortunate Windows doesn't have a GetLocalDrives() or 
GetAccessibleDriveLetters() function. Actually, isn't there a function 
to convert DOS paths to those funky //?/ paths? Maybe that would be both 
fast and give enough information to keep stat() happy; readdir() would 
still be out of luck tho.

Ryan

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list