blob: f8cedd2a5c2c1818ac0e1e5764942047ab3fdd1a [file] [log] [blame]
Igor Sysoev1b735832004-11-11 14:07:14 +00001
2/*
3 * Copyright (C) Igor Sysoev
4 */
5
6
7#include <ngx_config.h>
8#include <ngx_core.h>
9
10
11ngx_int_t ngx_threads_n;
12
13
14static size_t stack_size;
15
16
Igor Sysoevc2068d02005-10-19 12:33:58 +000017ngx_err_t
18ngx_create_thread(ngx_tid_t *tid,
19 ngx_thread_value_t (__stdcall *func)(void *arg), void *arg, ngx_log_t *log)
Igor Sysoev1b735832004-11-11 14:07:14 +000020{
21 ngx_err_t err;
22
Igor Sysoevc2068d02005-10-19 12:33:58 +000023 *tid = CreateThread(NULL, stack_size, func, arg, 0, NULL);
Igor Sysoev1b735832004-11-11 14:07:14 +000024
25 if (*tid != NULL) {
26 return 0;
27 }
28
29 err = ngx_errno;
30 ngx_log_error(NGX_LOG_ALERT, log, err, "CreateThread() failed");
31 return err;
32}
33
34
Igor Sysoevc2068d02005-10-19 12:33:58 +000035ngx_int_t
36ngx_init_threads(int n, size_t size, ngx_cycle_t *cycle)
Igor Sysoev1b735832004-11-11 14:07:14 +000037{
38 stack_size = size;
39
40 return NGX_OK;
41}
42
43
Igor Sysoevc2068d02005-10-19 12:33:58 +000044ngx_err_t
45ngx_thread_key_create(ngx_tls_key_t *key)
Igor Sysoev1b735832004-11-11 14:07:14 +000046{
47 *key = TlsAlloc();
48
49 if (*key == TLS_OUT_OF_INDEXES) {
50 return ngx_errno;
51 }
52
53 return 0;
54}
55
56
Igor Sysoevc2068d02005-10-19 12:33:58 +000057ngx_err_t
58ngx_thread_set_tls(ngx_tls_key_t *key, void *data)
Igor Sysoev1b735832004-11-11 14:07:14 +000059{
60 if (TlsSetValue(*key, data) == 0) {
61 return ngx_errno;
62 }
63
64 return 0;
65}
66
67
Igor Sysoevc2068d02005-10-19 12:33:58 +000068ngx_mutex_t *
69ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags)
Igor Sysoev1b735832004-11-11 14:07:14 +000070{
71 return (ngx_mutex_t *) 1;
72}
Igor Sysoevc1571722005-03-19 12:38:37 +000073
74
75/* STUB */
76
Igor Sysoevc2068d02005-10-19 12:33:58 +000077void
Igor Sysoevc1571722005-03-19 12:38:37 +000078ngx_mutex_lock(ngx_mutex_t *m) {
Igor Sysoevc2068d02005-10-19 12:33:58 +000079 return;
Igor Sysoevc1571722005-03-19 12:38:37 +000080}
81
82
Igor Sysoevc2068d02005-10-19 12:33:58 +000083
Igor Sysoevc1571722005-03-19 12:38:37 +000084ngx_int_t
85ngx_mutex_trylock(ngx_mutex_t *m) {
86 return NGX_OK;
87}
88
Igor Sysoevc2068d02005-10-19 12:33:58 +000089
90void
91ngx_mutex_unlock(ngx_mutex_t *m) {
92 return;
93}
94
Igor Sysoevc1571722005-03-19 12:38:37 +000095/**/