projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix potential deadlock between multithreaded fork and aio
[musl]
/
src
/
process
/
_Fork.c
diff --git
a/src/process/_Fork.c
b/src/process/_Fork.c
index
da06386
..
fb0fdc2
100644
(file)
--- a/
src/process/_Fork.c
+++ b/
src/process/_Fork.c
@@
-14,7
+14,6
@@
pid_t _Fork(void)
pid_t ret;
sigset_t set;
__block_all_sigs(&set);
pid_t ret;
sigset_t set;
__block_all_sigs(&set);
- __aio_atfork(-1);
LOCK(__abort_lock);
#ifdef SYS_fork
ret = __syscall(SYS_fork);
LOCK(__abort_lock);
#ifdef SYS_fork
ret = __syscall(SYS_fork);
@@
-32,7
+31,7
@@
pid_t _Fork(void)
if (libc.need_locks) libc.need_locks = -1;
}
UNLOCK(__abort_lock);
if (libc.need_locks) libc.need_locks = -1;
}
UNLOCK(__abort_lock);
-
__aio_atfork(!ret
);
+
if (!ret) __aio_atfork(1
);
__restore_sigs(&set);
return __syscall_ret(ret);
}
__restore_sigs(&set);
return __syscall_ret(ret);
}