unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Richard Stallman <rms@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: signal handling bogosities
Date: Fri, 20 Dec 2002 12:12:24 -0500	[thread overview]
Message-ID: <E18PQhE-0005AW-00@fencepost.gnu.org> (raw)
In-Reply-To: <buok7i62u25.fsf_-_@mcspd15.ucom.lsi.nec.co.jp> (message from Miles Bader on 19 Dec 2002 19:15:46 +0900)

    That signal results in `note_mouse_movement', and then
    `note_mouse_highlight' being called:

       #11 0x080b2345 in note_mouse_highlight (f=0x850aa18, x=184, y=260)
	   at /usr/local/src/emacs/src/xterm.c:7407
       #12 0x080b162e in note_mouse_movement (frame=0x850aa18, event=0xbffd1064)
	   at /usr/local/src/emacs/src/xterm.c:6893
       #13 0x080b5f05 in handle_one_xevent (dpyinfo=0x84f5490, eventp=0xbffd13ac, 
	   bufp_r=0xbffd1418, numcharsp=0xbffd141c, finish=0xbffd13a8)
	   at /usr/local/src/emacs/src/xterm.c:11291

    note_mouse_highlight then tries to figure out the proper mouse-face-id,
    which calls face realization, and if realize-face-filter-functions has
    a non-nil value, calls the lisp interpreter, and thus dies as seen.

I am surprised that the signal handler does face realization.  I would
have expected redisplay ought to do that job.  When the signal handler
runs, it should just look up the data that was computed by redisplay.

In the past, face realization did not evaluate any Lisp code, so
calling it from the signal handler was not a bug.  It may have been
bad design though.

    display the mouse face, and in other branches of the code the whole
    redisplay engine seems to be invoked, for exposure events (I don't know
    whether that can result in lisp code being called, but it seems as if it
    could -- given the complexity of redisplay, it's kind of hard to tell).

That seems bizarre too.  Can you please show me what you have learned
about this?

      How hard would be to
    restructure things to just queue this stuff for an event-loop outside
    the signal handler to handle?

That design has a serious drawback: the screen won't refresh while Emacs
is running.

The design idea used to be that the signal handler would update the
screen in a simple way based on tables that were computed in advance
by redisplay.  This avoided the problem we have now, and would
redisplay immediately even when Emacs is running.  Can we make it work
this way again?

Gerd wrote:

    Specifically for mouse-highlighting there may be a cheaper solution,
    though.  IIRC, I once talked with Stefan Monnier about generating
    mouse-highlight input events for mouse highlights instead of doing the
    display directly when handling the mouse movement event (analogous to
    help-echo, for example).

If we handle mouse highlighting by generating input events to do the
work at main program level, then the highlighting won't change when
you move the mouse while Emacs is running a Lisp program.  Is that
acceptable?

It is not as bad as failing to refresh the screen at all while
a Lisp program is running, but it is still somewhat undesirable.

  reply	other threads:[~2002-12-20 17:12 UTC|newest]

Thread overview: 133+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-07 19:39 Gtk version getting closer Jan D.
2002-11-08  0:08 ` Kim F. Storm
2002-11-08  9:21   ` jasonr
2002-11-08  9:56     ` Juanma Barranquero
2002-11-08 11:25       ` Kim F. Storm
2002-11-08 10:36         ` Juanma Barranquero
2002-11-09 14:27         ` Jan D.
2002-11-09 21:29   ` Eli Zaretskii
2002-11-09 11:53 ` Richard Stallman
2002-11-09 14:16   ` Jan D.
2002-11-11 10:19     ` Richard Stallman
2002-11-09 15:05   ` Karl Eichwalder
2002-11-11 10:19     ` Richard Stallman
2002-11-11 18:36       ` Karl Eichwalder
2002-11-12  5:50         ` Eli Zaretskii
2002-11-12  7:24           ` Karl Eichwalder
2002-11-12 17:15             ` Eli Zaretskii
2002-11-13  4:40             ` Miles Bader
2002-11-13  5:42               ` Eli Zaretskii
2002-11-13 13:21                 ` Robert J. Chassell
2002-11-13 15:38                   ` Jan D.
2002-11-13 16:35                     ` Stefan Monnier
2002-11-13 17:58                       ` Jan D.
2002-11-14 18:57                     ` Eli Zaretskii
2002-11-14 20:07                       ` Jan D.
2002-11-14 20:28                         ` Eli Zaretskii
2002-11-14 23:03                       ` Jason Rumney
2002-11-15 15:59                         ` Eli Zaretskii
2002-11-13 15:55                   ` Kim F. Storm
2002-11-13 18:23                     ` Robert J. Chassell
2002-11-13 18:42                       ` Stefan Monnier
2002-11-13 21:15                         ` Jan D.
2002-11-13 18:58                       ` David Masterson
2002-11-13 16:52                   ` Francesco Potorti`
2002-11-14 12:16                   ` Richard Stallman
2002-11-14 16:46                     ` Robert J. Chassell
2002-11-15  2:20                       ` Miles Bader
2002-11-15 12:29                         ` Robert J. Chassell
     [not found]                         ` <m18EUbO-000IeAC@localhost>
2002-11-20 22:08                           ` Bold by moving pixels problem Miles Bader
2002-11-21  0:21                             ` Robert J. Chassell
2002-11-21  1:33                               ` Stefan Monnier
2002-11-21  1:44                                 ` Miles Bader
     [not found]                                   ` <m18HRR2-000IeBC@localhost>
2002-12-17  5:00                                     ` Miles Bader
2002-12-17  6:28                                       ` Miles Bader
2002-12-17  7:08                                         ` Miles Bader
2002-12-18 10:01                                           ` Miles Bader
2002-12-18 12:26                                             ` Kim F. Storm
2002-12-19  8:34                                               ` Miles Bader
2002-12-19 10:18                                                 ` Miles Bader
2002-12-19 12:18                                                 ` Kim F. Storm
2002-12-19 11:27                                                   ` Miles Bader
2002-12-19 12:25                                                     ` Miles Bader
2002-12-19 13:55                                                       ` Kim F. Storm
2003-01-07 11:02                                                       ` Kim F. Storm
2003-01-07 14:02                                                         ` Miles Bader
2003-01-09  7:28                                                         ` Richard Stallman
2003-01-09  7:52                                                           ` Miles Bader
2002-12-18 14:25                                             ` Robert J. Chassell
2002-12-19 10:15                                               ` signal handling bogosities Miles Bader
2002-12-20 17:12                                                 ` Richard Stallman [this message]
2002-12-20 17:46                                                   ` Eli Zaretskii
2002-12-20 18:35                                                   ` Alex Schroeder
2002-12-20 22:06                                                   ` Miles Bader
2002-12-21 20:26                                                     ` Richard Stallman
2002-12-21 23:42                                                       ` Alex Schroeder
2002-12-23 20:58                                                         ` Richard Stallman
2002-12-22  2:02                                                       ` Miles Bader
2002-12-22  2:27                                                   ` Miles Bader
2002-12-23 20:58                                                     ` Richard Stallman
2002-12-17 10:31                                       ` Bold by moving pixels problem Kim F. Storm
2002-12-17 16:38                                       ` Robert J. Chassell
2002-12-17 23:54                                         ` Miles Bader
2002-11-21  6:01                               ` Eli Zaretskii
2002-11-16  1:34                       ` Gtk version getting closer Richard Stallman
2002-11-14 12:16               ` Richard Stallman
2002-11-12 12:34           ` Jan D.
2002-11-12 17:21             ` Eli Zaretskii
2002-11-13 10:15               ` Jan D.
2002-11-14 12:16                 ` Richard Stallman
2002-11-14 18:53                 ` Eli Zaretskii
2002-11-14 20:13                   ` Jan D.
2002-11-13 16:55             ` Jason Rumney
2002-11-14 17:25               ` Jan D.
2002-11-14  4:09             ` Richard Stallman
2002-11-14 17:49               ` Jan D.
2002-11-14 20:29                 ` Eli Zaretskii
2002-11-14 21:47                   ` Jan D.
2002-11-14 21:30                 ` David Masterson
2002-11-16  1:34                 ` Richard Stallman
2002-11-16 16:11                   ` Jan D.
2002-11-13 11:32         ` Richard Stallman
2002-11-13 17:09         ` David Masterson
2002-11-14 17:31           ` Jan D.
2002-11-14 20:22             ` David Masterson
2002-11-16  1:34               ` Richard Stallman
2002-11-18  5:06                 ` David Masterson
2002-11-15  2:36           ` Richard Stallman
2002-11-15  4:04             ` Miles Bader
2002-11-15 16:36               ` David Masterson
2002-11-15 16:31                 ` Eli Zaretskii
2002-11-15 18:46                   ` David Masterson
2002-11-15 21:15                     ` Eli Zaretskii
2002-11-15 22:35                       ` David Masterson
2002-11-15 17:33                 ` Miles Bader
2002-11-15 18:55                   ` David Masterson
2002-11-15 23:18                     ` Jason Rumney
2002-11-16  0:44                       ` David Masterson
2002-11-15 19:03                   ` Stefan Monnier
2002-11-15 18:00                 ` Robert J. Chassell
2002-11-19 13:26                   ` Miles Bader
2002-11-20 21:13                   ` Richard Stallman
2002-11-20 21:56                     ` Jason Rumney
2002-11-21  0:47                       ` Robert J. Chassell
2002-11-22 21:00                         ` Richard Stallman
2002-11-21  0:38                     ` Robert J. Chassell
2002-11-21 13:09                       ` Kenichi Handa
2002-11-21 14:08                         ` Miles Bader
2002-11-21 21:47                           ` Jason Rumney
2002-11-15 18:13                 ` Jason Rumney
2002-11-15 19:03                   ` David Masterson
2002-11-09 21:31 ` Eli Zaretskii
2002-11-10  9:02   ` Jan D.
2002-11-11 10:20     ` Richard Stallman
     [not found] <buo3cou2qxx.fsf@mcspd15.ucom.lsi.nec.co.jp>
2002-12-19 14:04 ` signal handling bogosities Gerd Moellmann
2002-12-20  1:44   ` Miles Bader
2002-12-20 10:25     ` Gerd Moellmann
2002-12-20 11:40       ` Kim F. Storm
2002-12-20 11:29         ` Gerd Moellmann
2002-12-25 11:52       ` Michael Livshin
2002-12-26  7:49         ` Richard Stallman
2002-12-31 16:54           ` Jan D.
2003-01-02 18:38             ` Richard Stallman
2003-01-04 12:33               ` Jan D.

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E18PQhE-0005AW-00@fencepost.gnu.org \
    --to=rms@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).