]> git.ipfire.org Git - thirdparty/valgrind.git/commit
sys_tgkill: hand the syscall to the kernel in the standard way, rather
authorJulian Seward <jseward@acm.org>
Thu, 17 Nov 2005 14:26:52 +0000 (14:26 +0000)
committerJulian Seward <jseward@acm.org>
Thu, 17 Nov 2005 14:26:52 +0000 (14:26 +0000)
commit7039eaa9ac48bd54480cb211f577ec07d8a12e67
tree3ba6d866de92d438a1b3af527a925f67614b8028
parent8a8c980ba00afd93dac886d444947054b04d291d
sys_tgkill: hand the syscall to the kernel in the standard way, rather
than doing it inline.  Doing it inline screws up on ppc32-linux if
we're sending an async signal to ourselves (the same thread) because
the kernel immediately hands the signal to async_sighandler() which
then dies at the assertion that this thread's state is VgTs_WaitSys.
From which I conclude this wrapper has always had a race against the
kernel which did not show up on x86 or amd64.  (and/or that I don't
understand this stuff too well)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5169
coregrind/m_syswrap/syswrap-linux.c
coregrind/m_syswrap/syswrap-main.c