aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix/freebsd/ngx_rfork_thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/unix/freebsd/ngx_rfork_thread.c')
-rw-r--r--src/os/unix/freebsd/ngx_rfork_thread.c64
1 files changed, 0 insertions, 64 deletions
diff --git a/src/os/unix/freebsd/ngx_rfork_thread.c b/src/os/unix/freebsd/ngx_rfork_thread.c
deleted file mode 100644
index acd5ec6e2..000000000
--- a/src/os/unix/freebsd/ngx_rfork_thread.c
+++ /dev/null
@@ -1,64 +0,0 @@
-
-#include <ngx_os_thread.h>
-
-char *ngx_stacks_start;
-char *ngx_stacks_end;
-size_t ngx_stack_size;
-
-
-/* handle thread-safe errno */
-static int errno0; /* errno for main thread */
-static int *errnos;
-
-int *__error()
-{
- ngx_tid_t tid = ngx_gettid();
- return tid ? &(errnos[ngx_gettid()]) : &errno0;
-}
-
-
-int ngx_create_thread(ngx_os_tid_t *tid, void *stack,
- int (*func)(void *arg), void *arg, ngx_log_t log)
-{
- int id, err;
-
- id = rfork_thread(RFPROC|RFMEM, stack, func, arg);
- err = ngx_errno;
-
- if (id == -1)
- ngx_log_error(NGX_LOG_ERR, log, err,
- "ngx_create_os_thread: rfork failed");
- else
- *tid = id;
-
- return err;
-}
-
-
-int ngx_create_thread_env(int n, size_t size, ngx_log_t log)
-{
- char *addr;
-
- /* create thread stacks */
- addr = mmap(NULL, n * size, PROT_READ|PROT_WRITE, MAP_ANON, -1, NULL);
- if (addr == MAP_FAILED) {
- ngx_log_error(NGX_LOG_ERR, log, ngx_errno,
- "ngx_create_os_thread_stacks: mmap failed");
- return -1;
- }
-
- nxg_stacks_start = addr;
- nxg_stacks_end = addr + n * size;
- nxg_stack_size = size;
-
- /* create thread errno array */
- ngx_test_null(errnos, ngx_calloc(n * sizeof(int)), -1);
-
- /* create thread tid array */
- ngx_test_null(ngx_os_tids, ngx_calloc(n * sizeof(ngx_os_tid_t)), -1);
-
- /* allow spinlock in malloc() */
- __isthreaded = 1;
-
- return 0;
-}