glibc/sysdeps/unix/sysv/linux/sparc
Torvald Riegel 389fdf78b2 Do not violate mutex destruction requirements.
POSIX and C++11 require that a thread can destroy a mutex if no other
thread owns the mutex, is blocked on the mutex, or will try to acquire
it in the future.  After destroying the mutex, it can reuse or unmap the
underlying memory.  Thus, we must not access a mutex' memory after
releasing it.  Currently, we can load the private flag after releasing
the mutex, which is fixed by this patch.
See https://sourceware.org/bugzilla/show_bug.cgi?id=13690 for more
background.

We need to call futex_wake on the lock after releasing it, however.  This
is by design, and can lead to spurious wake-ups on unrelated futex words
(e.g., when the mutex memory is reused for another mutex).  This behavior
is documented in the glibc-internal futex API and in recent drafts of the
Linux kernel's futex documentation (see the draft_futex branch of
git://git.kernel.org/pub/scm/docs/man-pages/man-pages.git).
2015-12-23 18:44:53 +01:00
..
bits Add __CPU_MASK_TYPE for __cpu_mask 2015-12-01 10:25:44 -08:00
sparc32 Fix lgamma setting signgam for ISO C (bug 15421). 2015-11-20 22:49:59 +00:00
sparc64 Rename localedir to complocaledir (bug 14259). 2015-11-27 10:22:38 -05:00
sys Update <sys/ptrace.h> for Linux 4.3. 2015-11-23 17:53:08 +00:00
Implies
Makefile
Versions
a.out.h
aio_cancel.c
arch-fork.h
configure
configure.ac
dl-cache.h
getshmlba.c
getsysstats.c
kernel-features.h
kernel_termios.h
ldd-rewrite.sed
lowlevellock.h Do not violate mutex destruction requirements. 2015-12-23 18:44:53 +01:00
pt-vfork.S
readelflib.c
rt-sysdep.c
syscalls.list
sysdep.c
sysdep.h Add INLINE_SYSCALL_ERROR_RETURN_VALUE 2015-10-13 11:59:15 -07:00
system.c