aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Colascione2014-02-24 06:27:37 -0800
committerDaniel Colascione2014-02-24 06:27:37 -0800
commit7c56ecf5f550703a28831c8ac8de940cc7d88599 (patch)
tree2139ee2d8e7339e12ac7cd1bc625236d08ee623f
parentf1037d0b8b95cf2afcbacededaae1627b3cb22f1 (diff)
parent146a4cf20237685a47cb3e8e85b85d63d4dff704 (diff)
downloademacs-7c56ecf5f550703a28831c8ac8de940cc7d88599.tar.gz
emacs-7c56ecf5f550703a28831c8ac8de940cc7d88599.zip
Fix event race
-rw-r--r--src/ChangeLog4
-rw-r--r--src/keyboard.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 86605b97764..ed71ae9452b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
12014-02-24 Daniel Colascione <dancol@dancol.org>
2
3 * keyboard.c (read_char): Close race that resulted in lost events.
4
12014-02-22 Glenn Morris <rgm@gnu.org> 52014-02-22 Glenn Morris <rgm@gnu.org>
2 6
3 * frame.c (frame-alpha-lower-limit, frame-resize-pixelwise): 7 * frame.c (frame-alpha-lower-limit, frame-resize-pixelwise):
diff --git a/src/keyboard.c b/src/keyboard.c
index 9dcb58ae66c..038ce6ea601 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -2891,8 +2891,12 @@ read_char (int commandflag, Lisp_Object map,
2891 { 2891 {
2892 c = read_decoded_event_from_main_queue (end_time, local_getcjmp, 2892 c = read_decoded_event_from_main_queue (end_time, local_getcjmp,
2893 prev_event, used_mouse_menu); 2893 prev_event, used_mouse_menu);
2894 if (end_time && timespec_cmp (*end_time, current_timespec ()) <= 0) 2894 if (NILP(c) && end_time &&
2895 goto exit; 2895 timespec_cmp (*end_time, current_timespec ()) <= 0)
2896 {
2897 goto exit;
2898 }
2899
2896 if (EQ (c, make_number (-2))) 2900 if (EQ (c, make_number (-2)))
2897 { 2901 {
2898 /* This is going to exit from read_char 2902 /* This is going to exit from read_char