Do not use O_RDWR on semaphores on FreeBSD
This is forbidden (returns EINVAL)
This commit is contained in:
parent
e5b5ee7bc9
commit
155d6ea3f9
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue