emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r114480: * frame.c (delete_frame): Block/unblock inp


From: Jan D.
Subject: [Emacs-diffs] trunk r114480: * frame.c (delete_frame): Block/unblock input to overcome race
Date: Sun, 29 Sep 2013 10:22:01 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 114480
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/15475
committer: Jan D. <address@hidden>
branch nick: trunk
timestamp: Sun 2013-09-29 12:21:58 +0200
message:
  * frame.c (delete_frame): Block/unblock input to overcome race
  condition.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/frame.c                    frame.c-20091113204419-o5vbwnq5f7feedwu-243
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-09-29 08:33:23 +0000
+++ b/src/ChangeLog     2013-09-29 10:21:58 +0000
@@ -1,3 +1,8 @@
+2013-09-29  Jan Djärv  <address@hidden>
+
+       * frame.c (delete_frame): Block/unblock input to overcome race
+       condition (Bug#15475).
+
 2013-09-29  Andreas Politz  <address@hidden>  (tiny change)
 
        * frame.c (delete_frame): Record selected frame only after

=== modified file 'src/frame.c'
--- a/src/frame.c       2013-09-29 08:33:23 +0000
+++ b/src/frame.c       2013-09-29 10:21:58 +0000
@@ -1373,13 +1373,15 @@
      have called the window-system-dependent frame destruction
      routine.  */
 
-  if (FRAME_TERMINAL (f)->delete_frame_hook)
-    (*FRAME_TERMINAL (f)->delete_frame_hook) (f);
 
   {
+    block_input ();
+    if (FRAME_TERMINAL (f)->delete_frame_hook)
+      (*FRAME_TERMINAL (f)->delete_frame_hook) (f);
     struct terminal *terminal = FRAME_TERMINAL (f);
     f->output_data.nothing = 0;
     f->terminal = 0;             /* Now the frame is dead.  */
+    unblock_input ();
 
     /* If needed, delete the terminal that this frame was on.
        (This must be done after the frame is killed.)  */


reply via email to

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