diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-02-07 22:16:19 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-02-07 22:16:19 +0100 |
commit | e9a5bc1c18b5acf3c8475e3f36431ac34bda9751 (patch) | |
tree | f04de3ec1a82064b532e04ca15ffb3ae5c1d192a | |
parent | a9a002fb6cb9941ba283ef832e2a88ab00033683 (diff) | |
download | glibc-e9a5bc1c18b5acf3c8475e3f36431ac34bda9751.tar.gz glibc-e9a5bc1c18b5acf3c8475e3f36431ac34bda9751.tar.xz glibc-e9a5bc1c18b5acf3c8475e3f36431ac34bda9751.zip |
hurd: fix sigstate locking
It looks like _hurd_thread_sigstate used to return with the sigstate lock held long ago, but since that's no longer the case, don't unlock something that isn't locked. Note that it's unlikely this change fixes anything in practice since its current implementation (on i386) makes this call a nop.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | hurd/hurd/signal.h | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 5081237ce5..97849df706 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-02-07 Richard Braun <rbraun@sceen.net> + + * hurd/hurd/signal.h (_hurd_critical_section_lock): Don't unlock + sigstate. + 2015-02-07 Samuel Thibault <samuel.thibault@ens-lyon.org> * sysdeps/pthread/aio_misc.c [!AIO_PRIO_DELTA_MAX]: Do not check diff --git a/hurd/hurd/signal.h b/hurd/hurd/signal.h index 4a744c10ed..e332242291 100644 --- a/hurd/hurd/signal.h +++ b/hurd/hurd/signal.h @@ -175,9 +175,8 @@ _hurd_critical_section_lock (void) /* The thread variable is unset; this must be the first time we've asked for it. In this case, the critical section flag cannot possible already be set. Look up our sigstate structure the slow - way; this locks the sigstate lock. */ + way. */ ss = *location = _hurd_thread_sigstate (__mach_thread_self ()); - __spin_unlock (&ss->lock); } if (! __spin_try_lock (&ss->critical_section_lock)) |