emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Can't interrupt directory_files_internal run from timer-event-handler


From: Klaus Zeitler
Subject: Can't interrupt directory_files_internal run from timer-event-handler
Date: Fri, 05 Aug 2005 11:03:40 +0200
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (usg-unix-v)

The following problem occurs with CVS emacs + ECB under Solaris 5.8.

While ECB performs its stealth update activities, emacs sometimes seems to
hang for a long time.
gdb shows the following function and backtrace:

directory_files_internal (directory=16076323, full=3313665, match=3313665, 
    nosort=3313713, attrs=0, id_format=3313665)
    at /vol/freeware/cvs/emacs/head/emacs/src/dired.c:226
226           if (dp == NULL && errno == EAGAIN)
(gdb) p directory
$1 = 16076323
(gdb) pr
"/vol/cld_scratch"

(gdb) xbacktrace
 "directory-files"
 "apply"
 "ecb-directory-files"
 "ecb-check-emptyness-of-dir"
 "ecb-stealthy-empty-dir-check"
 "ecb-stealthy-updates"
 "apply"
 "byte-code"
 "timer-event-handler"

I think emacs waits for readdir in dired.c:223 to complete and unfortunately
C-g doesn't work during stealthy update.

The culprit BTW is a mount point to a VAX cluster that e.g. need 20 minutes
to return from 'M-x eval-expression (directory-files "/vol/cld_scratch")'.
While I can interrupt 'M-x eval-expression (directory-files "/vol/cld_scratch")'
with C-g just fine, C-g has no effect when this command is run from 
timer-event-handler.

-- 
 ------------------------------------------
|  Klaus Zeitler      Lucent Technologies  |
|  Email:             address@hidden  |
 ------------------------------------------
---
The only problem with being a man of leisure
is that you can never stop and take a rest.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]