emacs-devel
[Top][All Lists]
Advanced

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

RE: Can't interrupt directory_files_internal run fromtimer-event-handler


From: klaus.berndl
Subject: RE: Can't interrupt directory_files_internal run fromtimer-event-handler
Date: Fri, 5 Aug 2005 14:01:44 +0200

Klaus Zeitler wrote:
> 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.

ECB encapslates ist "stealthy" tasks in a loop like:

        (while (and (not (input-pending-p))
                ...

So IMHO C-g should work....

AFAIK there is a new macro in CVS named `while-no-input' (there
was a discussion some time ago).... Could using this macro
solve problems like that posted from the OP??

Ciao,
Klaus

> 
> 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.
> 
> 
> _______________________________________________
> Emacs-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/emacs-devel




reply via email to

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