summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1994-08-26 05:18:31 +0000
committerKarl Heuer <kwzh@gnu.org>1994-08-26 05:18:31 +0000
commit23cf7c602a3ec4f10f8eb312e0f38ae8ba9fea29 (patch)
tree7e2a3ca5d77b9dba4019e59bdd364dfa292e07b6
parent8427dec96b1d72027a72983f780d852dfbb8deb6 (diff)
downloademacs-23cf7c602a3ec4f10f8eb312e0f38ae8ba9fea29.tar.gz
(x_make_frame_visible): Call signal handler directly.
-rw-r--r--src/xterm.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/xterm.c b/src/xterm.c
index a900a6e15dd..73515ff3174 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -5673,10 +5673,15 @@ x_make_frame_visible (f)
{
x_sync (frame);
/* Machines that do polling rather than SIGIO have been observed
- to go into a busy-wait here. Send the alarm signal to let
- the handler know that there's something to be read. */
+ to go into a busy-wait here. So we'll fake an alarm signal
+ to let the handler know that there's something to be read.
+ We used to raise a real alarm, but it seems that the handler
+ isn't always enabled here. This is probably a bug. */
#ifndef SIGIO
- kill (getpid(), SIGALRM);
+ /* It could be confusing if a real alarm arrives while processing
+ the fake one. Turn it off and let the handler reset it. */
+ alarm (0);
+ input_poll_signal ();
#endif
}
FRAME_SAMPLE_VISIBILITY (f);