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); }