diff options
author | Greg V <greg@unrelenting.technology> | 2018-11-23 20:13:43 +0300 |
---|---|---|
committer | 0EVSG <dev@submerge.ch> | 2021-12-27 20:45:57 +0100 |
commit | 1d3926a56b3f374811636894113a9c7d6fdb6c2b (patch) | |
tree | 34980e43382bb207167a86eb79958bad1376d02a | |
parent | 89a7e22a54e3972f109d44e031102ad742ebb107 (diff) | |
download | jack2-1d3926a56b3f374811636894113a9c7d6fdb6c2b.tar.gz |
Do not use O_RDWR on semaphores on FreeBSD
This is forbidden (returns EINVAL)
-rw-r--r-- | posix/JackPosixSemaphore.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/posix/JackPosixSemaphore.cpp b/posix/JackPosixSemaphore.cpp index 046179e0..a18b6b70 100644 --- a/posix/JackPosixSemaphore.cpp +++ b/posix/JackPosixSemaphore.cpp @@ -32,8 +32,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) #define JACK_SEM_PREFIX "/jack_sem" +#define SEM_DEFAULT_O 0 #else #define JACK_SEM_PREFIX "jack_sem" +#define SEM_DEFAULT_O O_RDWR #endif namespace Jack @@ -152,7 +154,7 @@ bool JackPosixSemaphore::Allocate(const char* name, const char* server_name, int BuildName(name, server_name, fName, sizeof(fName)); jack_log("JackPosixSemaphore::Allocate name = %s val = %ld", fName, value); - if ((fSemaphore = sem_open(fName, O_CREAT | O_RDWR, 0777, value)) == (sem_t*)SEM_FAILED) { + if ((fSemaphore = sem_open(fName, O_CREAT | SEM_DEFAULT_O, 0777, value)) == (sem_t*)SEM_FAILED) { jack_error("Allocate: can't check in named semaphore name = %s err = %s", fName, strerror(errno)); return false; } else { @@ -180,7 +182,7 @@ bool JackPosixSemaphore::ConnectInput(const char* name, const char* server_name) return true; } - if ((fSemaphore = sem_open(fName, O_RDWR)) == (sem_t*)SEM_FAILED) { + if ((fSemaphore = sem_open(fName, SEM_DEFAULT_O)) == (sem_t*)SEM_FAILED) { jack_error("Connect: can't connect named semaphore name = %s err = %s", fName, strerror(errno)); return false; } else if (fSemaphore) { |