[PATCH] misc/tst-clone3: Fix waiting for exited thread.
Stefan Liebler
stli@linux.ibm.com
Fri Feb 8 15:13:00 GMT 2019
Hi,
from time to time the test misc/tst-clone3 fails with an timeout. Then
futex_wait is blocking. Usually ctid should be set to zero due to
CLONE_CHILD_CLEARTID and the futex should be waken up. But the fail
occures if the thread has already exited before ctid is set to the
return value of clone(). Then futex_wait() will block as there will be
nobody who wakes the futex up again.
This patch initializes ctid to a known value before calling clone and
the kernel is the only one who updates the value to zero after clone.
If futex_wait is called then it is either waked up due to the exited
thread or the futex syscall fails as *ctid_ptr is already zero instead
of the specified value 1.
Okay to commit?
Bye
Stefan
ChangeLog:
* sysdeps/unix/sysv/linux/tst-clone3.c (do_test):
Initialize ctid with a known value and remove update of ctid
after clone.
(wait_tid): Adjust arguments and call futex_wait with ctid_val
as assumed current value of ctid_ptr.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20190208_misc_tst-clone3.patch
Type: text/x-patch
Size: 2582 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20190208/972513fd/attachment.bin>
More information about the Libc-alpha
mailing list