Fix: handle sys_futex() FUTEX_WAIT interrupted by signal
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Mon, 6 Jul 2015 20:32:28 +0000 (16:32 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 8 Jul 2015 18:43:08 +0000 (14:43 -0400)
commit52c67a3d6139a6bf56b97ed350c7f3beaef3ce67
treeb93677560bf0fe37898fb25e52b7547ffcdebd4d
parent3887117a5650a14b8b9cc95e2e73bc269575bf46
Fix: handle sys_futex() FUTEX_WAIT interrupted by signal

We need to handle EINTR returned by sys_futex() FUTEX_WAIT, otherwise a
signal interrupting this system call could make sys_futex return too
early, and therefore cause a synchronization issue.

Ensure that the futex compatibility layer returns meaningful errors and
errno when using poll() or pthread cond variables.

Reported-by: Gerd Gerats <geg@ngncc.de>
CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
CC: Lai Jiangshan <laijs@cn.fujitsu.com>
CC: Stephen Hemminger <shemminger@vyatta.com>
CC: Alan Stern <stern@rowland.harvard.edu>
CC: lttng-dev@lists.lttng.org
CC: rp@svcs.cs.pdx.edu
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
compat_futex.c
urcu-call-rcu-impl.h
urcu-defer-impl.h
urcu-qsbr.c
urcu-wait.h
urcu.c
urcu/futex.h
urcu/static/urcu-qsbr.h
urcu/static/urcu.h
This page took 0.025753 seconds and 4 git commands to generate.