mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-28 03:20:11 +01:00
#3338: NamedMutex does not work on Linux distributions where fs.protected_regular=1
This commit is contained in:
@@ -58,7 +58,9 @@ NamedEventImpl::NamedEventImpl(const std::string& name):
|
|||||||
if ((long) _sem == (long) SEM_FAILED)
|
if ((long) _sem == (long) SEM_FAILED)
|
||||||
throw SystemException(Poco::format("cannot create named mutex %s (sem_open() failed, errno=%d)", fileName, errno), _name);
|
throw SystemException(Poco::format("cannot create named mutex %s (sem_open() failed, errno=%d)", fileName, errno), _name);
|
||||||
#else
|
#else
|
||||||
int fd = open(fileName.c_str(), O_RDONLY | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
|
int fd = open(fileName.c_str(), O_RDONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
|
||||||
|
if (fd == -1 && errno == ENOENT)
|
||||||
|
fd = open(fileName.c_str(), O_RDONLY | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
|
||||||
if (fd != -1)
|
if (fd != -1)
|
||||||
close(fd);
|
close(fd);
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -58,7 +58,9 @@ NamedMutexImpl::NamedMutexImpl(const std::string& name):
|
|||||||
if ((long) _sem == (long) SEM_FAILED)
|
if ((long) _sem == (long) SEM_FAILED)
|
||||||
throw SystemException(Poco::format("cannot create named mutex %s (sem_open() failed, errno=%d)", fileName, errno), _name);
|
throw SystemException(Poco::format("cannot create named mutex %s (sem_open() failed, errno=%d)", fileName, errno), _name);
|
||||||
#else
|
#else
|
||||||
int fd = open(fileName.c_str(), O_RDONLY | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
|
int fd = open(fileName.c_str(), O_RDONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
|
||||||
|
if (fd == -1 && errno == ENOENT)
|
||||||
|
fd = open(fileName.c_str(), O_RDONLY | O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
|
||||||
if (fd != -1)
|
if (fd != -1)
|
||||||
close(fd);
|
close(fd);
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user