Commit ada63129 authored by Andrei Vagin's avatar Andrei Vagin Committed by Pavel Emelyanov

zdtm: don't trigger BUG if futex returns EINTR

It can hapen in tty tests, where we get SIGHUP.
Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 18c0fbc2
......@@ -64,7 +64,7 @@ static inline void futex_add_and_wake(futex_t *f, uint32_t v)
break; \
ret = sys_futex(&(__f)->raw, FUTEX_WAIT,\
tmp, NULL, NULL, 0); \
if (ret < 0 && errno == EAGAIN) \
if (ret < 0 && (errno == EAGAIN || errno == EINTR)) \
continue; \
BUG_ON(ret < 0 && errno != EWOULDBLOCK); \
} \
......@@ -119,7 +119,7 @@ static inline uint32_t futex_wait_while(futex_t *f, uint32_t v)
{
while (f->raw == v) {
int ret = sys_futex(&f->raw, FUTEX_WAIT, v, NULL, NULL, 0);
if (ret < 0 && errno == EAGAIN)
if (ret < 0 && (errno == EAGAIN || errno == EINTR))
continue;
BUG_ON(ret < 0 && errno != EWOULDBLOCK);
}
......
......@@ -97,8 +97,10 @@ int main(int argc, char ** argv)
fail("The child returned %d", WEXITSTATUS(status));
return 1;
}
} else
} else {
test_msg("The child has been killed by %d\n", WTERMSIG(status));
return 1;
}
pass();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment