From 25987402027dfb2ef32736097bf694bbc538ac72 Mon Sep 17 00:00:00 2001 From: ktopley-apple Date: Tue, 5 Feb 2019 15:34:33 -0800 Subject: [PATCH] Merge pull request #442 from gmilos/SR-9863-sem-wait-signal-interrupt-fix Retry sem_wait on signal interrupts (cherry picked from commit 4b85ca66d0df7dd17066f778f4663b192705efe8) --- 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); }