diff options
author | Rich Felker <dalias@aerifal.cx> | 2020-09-30 13:24:28 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2020-10-14 20:27:12 -0400 |
commit | e1e98d869c5b3ebf59e0d0006c108daf0368245e (patch) | |
tree | 86e230be6f6373e59cf545d0812b17fb0393581e /src/process/fork.c | |
parent | 50716702d41d5f6f31c1075a1734b9f759477f0d (diff) | |
download | musl-e1e98d869c5b3ebf59e0d0006c108daf0368245e.tar.gz |
rename fork source file
this is in preparation for implementing _Fork from POSIX-future,
factored as a separate commit to improve readability of history.
Diffstat (limited to 'src/process/fork.c')
-rw-r--r-- | src/process/fork.c | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/src/process/fork.c b/src/process/fork.c deleted file mode 100644 index 17fb87ad..00000000 --- a/src/process/fork.c +++ /dev/null @@ -1,44 +0,0 @@ -#include <unistd.h> -#include <string.h> -#include <signal.h> -#include "syscall.h" -#include "libc.h" -#include "lock.h" -#include "pthread_impl.h" - -static void dummy(int x) -{ -} - -weak_alias(dummy, __fork_handler); -weak_alias(dummy, __aio_atfork); - -pid_t fork(void) -{ - pid_t ret; - sigset_t set; - __fork_handler(-1); - __block_all_sigs(&set); - __aio_atfork(-1); - LOCK(__abort_lock); -#ifdef SYS_fork - ret = __syscall(SYS_fork); -#else - ret = __syscall(SYS_clone, SIGCHLD, 0); -#endif - if (!ret) { - pthread_t self = __pthread_self(); - self->tid = __syscall(SYS_gettid); - self->robust_list.off = 0; - self->robust_list.pending = 0; - self->next = self->prev = self; - __thread_list_lock = 0; - libc.threads_minus_1 = 0; - if (libc.need_locks) libc.need_locks = -1; - } - UNLOCK(__abort_lock); - __aio_atfork(!ret); - __restore_sigs(&set); - __fork_handler(!ret); - return __syscall_ret(ret); -} |