From 3ec48298d6f6c6f7f1c30036d67b1d1b76a92375 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Grzegorz=20Mi=C5=82o=C5=9B?= Date: Sat, 2 Feb 2019 15:35:03 -0800 Subject: [PATCH] Retry sem_wait on signal interrupts --- src/shims/lock.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/shims/lock.c b/src/shims/lock.c index 27b0c10a0..e1b94dc45 100644 --- a/src/shims/lock.c +++ b/src/shims/lock.c @@ -203,7 +203,10 @@ _dispatch_sema4_signal(_dispatch_sema4_t *sema, long count) void _dispatch_sema4_wait(_dispatch_sema4_t *sema) { - int ret = sem_wait(sema); + int ret = 0; + do { + ret = sem_wait(sema); + } while (ret == -1 && errno == EINTR); DISPATCH_SEMAPHORE_VERIFY_RET(ret); }