Merge pull request #442 from gmilos/SR-9863-sem-wait-signal-interrupt-fix

Retry sem_wait on signal interrupts
diff --git a/src/shims/lock.c b/src/shims/lock.c
index 27b0c10..e1b94dc 100644
--- a/src/shims/lock.c
+++ b/src/shims/lock.c
@@ -203,7 +203,10 @@
 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);
 }