diff options
Diffstat (limited to 'macosx/JackMachSemaphore.mm')
-rw-r--r-- | macosx/JackMachSemaphore.mm | 17 |
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; } |