summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg V <greg@unrelenting.technology>2018-11-23 20:13:43 +0300
committer0EVSG <dev@submerge.ch>2021-12-27 20:45:57 +0100
commit1d3926a56b3f374811636894113a9c7d6fdb6c2b (patch)
tree34980e43382bb207167a86eb79958bad1376d02a
parent89a7e22a54e3972f109d44e031102ad742ebb107 (diff)
downloadjack2-1d3926a56b3f374811636894113a9c7d6fdb6c2b.tar.gz
Do not use O_RDWR on semaphores on FreeBSD
This is forbidden (returns EINVAL)
-rw-r--r--posix/JackPosixSemaphore.cpp6
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) {