projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rework langinfo code for ABI compat and for use by time code
[musl]
/
src
/
mman
/
shm_open.c
diff --git
a/src/mman/shm_open.c
b/src/mman/shm_open.c
index
b23eac7
..
d042a5a
100644
(file)
--- a/
src/mman/shm_open.c
+++ b/
src/mman/shm_open.c
@@
-4,6
+4,7
@@
#include <unistd.h>
#include <string.h>
#include <limits.h>
#include <unistd.h>
#include <string.h>
#include <limits.h>
+#include <pthread.h>
char *__strchrnul(const char *, int);
char *__strchrnul(const char *, int);
@@
-27,9
+28,13
@@
char *__shm_mapname(const char *name, char *buf)
int shm_open(const char *name, int flag, mode_t mode)
{
int shm_open(const char *name, int flag, mode_t mode)
{
+ int cs;
char buf[NAME_MAX+10];
if (!(name = __shm_mapname(name, buf))) return -1;
char buf[NAME_MAX+10];
if (!(name = __shm_mapname(name, buf))) return -1;
- return open(name, flag|O_NOFOLLOW|O_CLOEXEC|O_NONBLOCK, mode);
+ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+ int fd = open(name, flag|O_NOFOLLOW|O_CLOEXEC|O_NONBLOCK, mode);
+ pthread_setcancelstate(cs, 0);
+ return fd;
}
int shm_unlink(const char *name)
}
int shm_unlink(const char *name)