summaryrefslogtreecommitdiff
path: root/macosx/JackMachSemaphore.mm
diff options
context:
space:
mode:
Diffstat (limited to 'macosx/JackMachSemaphore.mm')
-rw-r--r--macosx/JackMachSemaphore.mm17
1 files changed, 13 insertions, 4 deletions
diff --git a/macosx/JackMachSemaphore.mm b/macosx/JackMachSemaphore.mm
index f2ba3dd7..8b855657 100644
--- a/macosx/JackMachSemaphore.mm
+++ b/macosx/JackMachSemaphore.mm
@@ -1,5 +1,6 @@
/*
Copyright (C) 2004-2008 Grame
+Copyright (C) 2016-2023 Filipe Coelho <falktx@falktx.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
@@ -92,11 +93,15 @@ bool JackMachSemaphore::Wait()
kern_return_t res = semaphore_wait(fSemaphore);
- // killing a thread will abort the semaphore wait
- if (res == KERN_SUCCESS || res == KERN_ABORTED) {
+ if (res == KERN_SUCCESS) {
return true;
}
+ // killing a thread will abort the semaphore wait, skip the error log
+ if (res == KERN_ABORTED) {
+ return false;
+ }
+
jack_error("JackMachSemaphore::Wait name = %s err = %s", fName, mach_error_string(res));
return false;
}
@@ -114,11 +119,15 @@ bool JackMachSemaphore::TimedWait(long usec)
kern_return_t res = semaphore_timedwait(fSemaphore, time);
- // killing a thread will abort the semaphore wait
- if (res == KERN_SUCCESS || res == KERN_ABORTED) {
+ if (res == KERN_SUCCESS) {
return true;
}
+ // killing a thread will abort the semaphore wait, skip the error log
+ if (res == KERN_ABORTED) {
+ return false;
+ }
+
jack_error("JackMachSemaphore::TimedWait name = %s usec = %ld err = %s", fName, usec, mach_error_string(res));
return false;
}