projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
[utils] Fix retiring of live block for the lock free allocator
[mono.git]
/
mono
/
utils
/
mono-os-semaphore.h
diff --git
a/mono/utils/mono-os-semaphore.h
b/mono/utils/mono-os-semaphore.h
index 7ab1b9df7876d24e2bf88fe0858c177491512bcf..16e3d463b8b7377ab0dfb6ec22b8adcc15b76f66 100644
(file)
--- a/
mono/utils/mono-os-semaphore.h
+++ b/
mono/utils/mono-os-semaphore.h
@@
-131,10
+131,13
@@
static inline int
mono_os_sem_post (MonoSemType *sem)
{
int res;
-
+retry:
res = semaphore_signal (*sem);
g_assert (res != KERN_INVALID_ARGUMENT);
+ if (res == KERN_ABORTED)
+ goto retry;
+
return res != KERN_SUCCESS ? -1 : 0;
}