Do not use O_RDWR on semaphores on FreeBSD

This is forbidden (returns EINVAL)
This commit is contained in:
Greg V 2018-11-23 20:13:43 +03:00 committed by falkTX
parent e5b5ee7bc9
commit 155d6ea3f9
1 changed files with 4 additions and 2 deletions

View File

@ -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) {