bug-gnu-emacs
[Top][All Lists]
Advanced

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

Re: C-g does not interrupt lisp code (emacs 21)


From: Philippe Waroquiers
Subject: Re: C-g does not interrupt lisp code (emacs 21)
Date: Wed, 24 Oct 2001 15:28:13 +0200 (METDST)

> >   (while t) C-x C-e
> 
> And it works here with 21.1 as well.  Do other people see the same?

Some additional information. Tracing which system calls are done while
emacs is blocked, here is the end of the trace :

ioctl(5, FIONREAD, 0x7f0aa6f0) ........................... = 0
select(6, 0x7f07cae0, NULL, NULL, 0x7f07cbf0) ............ = 1
gettimeofday(0x7f0a9f58, NULL) ........................... = 0
ioctl(5, FIONREAD, 0x7f0aa730) ........................... = 0
read(5, "02- \r3 bed41fd8\0\0\0' \a\0\01f".., 32) ........ = 32
ioctl(5, FIONREAD, 0x7f0aa730) ........................... = 0
gettimeofday(0x7f0a9f58, NULL) ........................... = 0
gettimeofday(0x7f0a9fd8, NULL) ........................... = 0
sigvec(SIGALRM, 0x7f07ca98, 0x7f07caa8) .................. = 0
sigvec(SIGALRM, 0x7f07ca98, 0x7f07caa8) .................. = 0
gettimeofday(0x7f07ca30, NULL) ........................... = 0
setitimer(ITIMER_REAL, 0x7f07ca40, NULL) ................. = 0
ioctl(5, FIONREAD, 0x7f0aa6f0) ........................... = 0
write(5, "; \0\005\a\0\091\0\0\0\0\01c02v ".., 112) ...... = 112
sigblock(0x2000) ......................................... = 8192
gettimeofday(0x40410064, NULL) ........................... = 0
sigvec(SIGALRM, 0x7f07c458, 0x7f07c468) .................. = 0
gettimeofday(0x7f07c3f0, NULL) ........................... = 0
setitimer(ITIMER_REAL, 0x7f07c400, NULL) ................. = 0
In user-mode ............................................. [running]


after this, no way to have anything out of emacs 21.



emacs 20.7 tracing, on the other hand, gives always some output even
when in the lisp infinite loop.
Find hereafter the tracing of emacs 20.7.
We see that emacs 20 is receiving alarm signal at regular interval.
If I am not wrong, in emacs 21, the call to sigblock will block sigalrm.
The manual of setitimer also says that ITIMER_REAL is shared with alarm().
I do not understand much of what is happening in this area but maybe
all this is linked to the problem. Note that there is a way to have
some more info about the system call args. If this can be useful,
I can send this.

alarm(2) ................................................. = 0
  Received signal 14, SIGALRM, in user mode, [caught], no siginfo
ioctl(5, FIONREAD, 0x7f01f7c0) ........................... = 0
sigvec(SIGALRM, 0x7f01f268, 0x7f01f278) .................. = 0
alarm(2) ................................................. = 0
  Received signal 14, SIGALRM, in user mode, [caught], no siginfo
ioctl(5, FIONREAD, 0x7f01f900) ........................... = 0
sigvec(SIGALRM, 0x7f01f3a8, 0x7f01f3b8) .................. = 0
alarm(2) ................................................. = 0
  Received signal 14, SIGALRM, in user mode, [caught], no siginfo
ioctl(5, FIONREAD, 0x7f01fb40) ........................... = 0
sigvec(SIGALRM, 0x7f01f5e8, 0x7f01f5f8) .................. = 0
alarm(2) ................................................. = 0
  Received signal 14, SIGALRM, in user mode, [caught], no siginfo
ioctl(5, FIONREAD, 0x7f01f900) ........................... = 0
sigvec(SIGALRM, 0x7f01f3a8, 0x7f01f3b8) .................. = 0
alarm(2) ................................................. = 0
  Received signal 14, SIGALRM, in user mode, [caught], no siginfo
ioctl(5, FIONREAD, 0x7f01fb40) ........................... = 0
sigvec(SIGALRM, 0x7f01f5e8, 0x7f01f5f8) .................. = 0
alarm(2) ................................................. = 0




-- 
Philippe WAROQUIERS                  Eurocontrol - Central Flow Management Unit
philippe.waroquiers@eurocontrol.int  Rue de la fusee, 96
Tel: +32 2 729 97 35                 1130 Brussels
Fax: +32 2 729 90 22                 Belgium



reply via email to

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