[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#29347: 27.0.50; C-g doesn't quit minibuffer
From: |
Eli Zaretskii |
Subject: |
bug#29347: 27.0.50; C-g doesn't quit minibuffer |
Date: |
Fri, 24 Nov 2017 23:41:11 +0200 |
> Date: Fri, 24 Nov 2017 23:14:16 +0200
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 29370@debbugs.gnu.org, 29347@debbugs.gnu.org, rms@gnu.org
>
> > Date: Fri, 24 Nov 2017 18:17:58 +0200
> > From: Eli Zaretskii <eliz@gnu.org>
> > Cc: 29370@debbugs.gnu.org, 29347@debbugs.gnu.org, rms@gnu.org
> >
> > I think I fixed the problem which caused Emacs to hang in this
> > particular scenario, but I'm not sure Richard is seeing the same
> > problem. The change I installed on the emacs-26 branch is below;
> > Richard, please try applying it, and see if your problems go away.
>
> Sorry, wrong patch. Please use the one below instead.
Sorry again, that was not the best idea. Here is a better patch:
diff --git a/src/thread.c b/src/thread.c
index 9e799ce..dd46681 100644
--- a/src/thread.c
+++ b/src/thread.c
@@ -578,8 +573,15 @@ really_call_select (void *arg)
sa->timeout, sa->sigmask);
block_interrupt_signal (&oldset);
- acquire_global_lock (self);
- self->not_holding_lock = 0;
+ /* If we were interrupted by C-g while inside sa->func above, the
+ signal handler could have called maybe_reacquire_global_lock, in
+ which case we are already holding the lock and shouldn't try
+ taking it again, or else we will hang forever. */
+ if (self->not_holding_lock)
+ {
+ acquire_global_lock (self);
+ self->not_holding_lock = 0;
+ }
restore_signal_mask (&oldset);
}
bug#29347: 27.0.50; C-g doesn't quit minibuffer, Mike Gerwitz, 2017/11/20
bug#29347: 27.0.50; C-g doesn't quit minibuffer, Mike Gerwitz, 2017/11/26
bug#29347: 27.0.50; C-g doesn't quit minibuffer, Eli Zaretskii, 2017/11/27
bug#29370: bug#29347: 27.0.50; C-g doesn't quit minibuffer, Richard Stallman, 2017/11/27
bug#29347: 27.0.50; C-g doesn't quit minibuffer, Eli Zaretskii, 2017/11/27
bug#29347: 27.0.50; C-g doesn't quit minibuffer, Richard Stallman, 2017/11/20