diff options
author | Eli Zaretskii <eliz@gnu.org> | 2017-01-18 18:06:42 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2017-01-18 18:06:42 +0200 |
commit | 5fefaaa8c0696ba4b7b6e1e89267aa10fff88b31 (patch) | |
tree | a6206b902d88eefec0fbed6644d3a6648fcae448 /lisp/emacs-lisp/trace.el | |
parent | 571532605bc0db221c76e36067435e4355e0d1a1 (diff) | |
download | emacs-5fefaaa8c0696ba4b7b6e1e89267aa10fff88b31.tar.gz emacs-5fefaaa8c0696ba4b7b6e1e89267aa10fff88b31.tar.bz2 emacs-5fefaaa8c0696ba4b7b6e1e89267aa10fff88b31.zip |
Fix a bug with signaling a thread that waits for condvar
* src/thread.c (lisp_mutex_lock_for_thread): New function,
with all the guts of lisp_mutex_lock.
(lisp_mutex_lock): Call lisp_mutex_lock_for_thread.
(condition_wait_callback): Don't call post_acquire_global_lock
before locking the mutex, as that could cause a signaled thread to
exit prematurely, because the condvar's mutex is recorded to be
not owned by any thread, and with-mutex wants to unlock it as part
of unwinding the stack in response to the signal.
Diffstat (limited to 'lisp/emacs-lisp/trace.el')
0 files changed, 0 insertions, 0 deletions