From 8969df6015a2697f9deb0c6bbabbafbd70ad9ce2 Mon Sep 17 00:00:00 2001 From: Fedor Indutny Date: Wed, 22 Aug 2012 19:27:17 +0700 Subject: [PATCH] darwin: handle KERN_ABORTED in uv_sem_wait() --- src/unix/thread.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/unix/thread.c b/src/unix/thread.c index 67c78769..aa637180 100644 --- a/src/unix/thread.c +++ b/src/unix/thread.c @@ -187,7 +187,13 @@ void uv_sem_post(uv_sem_t* sem) { void uv_sem_wait(uv_sem_t* sem) { - if (semaphore_wait(*sem)) + int r; + + do + r = semaphore_wait(*sem); + while (r == KERN_ABORTED); + + if (r != KERN_SUCCESS) abort(); }