Mercurial > hg > nginx-quic
comparison src/os/win32/ngx_thread.c @ 563:9c2f3ed7a247 release-0.3.3
nginx-0.3.3-RELEASE import
*) Change: the "bl" and "af" parameters of the "listen" directive was
renamed to the "backlog" and "accept_filter".
*) Feature: the "rcvbuf" and "sndbuf" parameters of the "listen"
directive.
*) Change: the "$msec" log parameter does not require now the
additional the gettimeofday() system call.
*) Feature: the -t switch now tests the "listen" directives.
*) Bugfix: if the invalid address was specified in the "listen"
directive, then after the -HUP signal nginx left an open socket in
the CLOSED state.
*) Bugfix: the mime type may be incorrectly set to default value for
index file with variable in the name; the bug had appeared in 0.3.0.
*) Feature: the "timer_resolution" directive.
*) Feature: the millisecond "$upstream_response_time" log parameter.
*) Bugfix: a temporary file with client request body now is removed
just after the response header was transferred to a client.
*) Bugfix: OpenSSL 0.9.6 compatibility.
*) Bugfix: the SSL certificate and key file paths could not be relative.
*) Bugfix: the "ssl_prefer_server_ciphers" directive did not work in
the ngx_imap_ssl_module.
*) Bugfix: the "ssl_protocols" directive allowed to specify the single
protocol only.
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 19 Oct 2005 12:33:58 +0000 |
parents | d4ea69372b94 |
children | d43d73277c5c |
comparison
equal
deleted
inserted
replaced
562:4b6108f69026 | 563:9c2f3ed7a247 |
---|---|
12 | 12 |
13 | 13 |
14 static size_t stack_size; | 14 static size_t stack_size; |
15 | 15 |
16 | 16 |
17 ngx_err_t ngx_create_thread(ngx_tid_t *tid, void* (*func)(void *arg), void *arg, | 17 ngx_err_t |
18 ngx_log_t *log) | 18 ngx_create_thread(ngx_tid_t *tid, |
19 ngx_thread_value_t (__stdcall *func)(void *arg), void *arg, ngx_log_t *log) | |
19 { | 20 { |
20 ngx_err_t err; | 21 ngx_err_t err; |
21 | 22 |
22 *tid = CreateThread(NULL, stack_size, | 23 *tid = CreateThread(NULL, stack_size, func, arg, 0, NULL); |
23 (LPTHREAD_START_ROUTINE) func, arg, 0, NULL); | |
24 | 24 |
25 if (*tid != NULL) { | 25 if (*tid != NULL) { |
26 return 0; | 26 return 0; |
27 } | 27 } |
28 | 28 |
30 ngx_log_error(NGX_LOG_ALERT, log, err, "CreateThread() failed"); | 30 ngx_log_error(NGX_LOG_ALERT, log, err, "CreateThread() failed"); |
31 return err; | 31 return err; |
32 } | 32 } |
33 | 33 |
34 | 34 |
35 ngx_int_t ngx_init_threads(int n, size_t size, ngx_cycle_t *cycle) | 35 ngx_int_t |
36 ngx_init_threads(int n, size_t size, ngx_cycle_t *cycle) | |
36 { | 37 { |
37 stack_size = size; | 38 stack_size = size; |
38 | 39 |
39 return NGX_OK; | 40 return NGX_OK; |
40 } | 41 } |
41 | 42 |
42 | 43 |
43 ngx_err_t ngx_thread_key_create(ngx_tls_key_t *key) | 44 ngx_err_t |
45 ngx_thread_key_create(ngx_tls_key_t *key) | |
44 { | 46 { |
45 *key = TlsAlloc(); | 47 *key = TlsAlloc(); |
46 | 48 |
47 if (*key == TLS_OUT_OF_INDEXES) { | 49 if (*key == TLS_OUT_OF_INDEXES) { |
48 return ngx_errno; | 50 return ngx_errno; |
50 | 52 |
51 return 0; | 53 return 0; |
52 } | 54 } |
53 | 55 |
54 | 56 |
55 ngx_err_t ngx_thread_set_tls(ngx_tls_key_t *key, void *data) | 57 ngx_err_t |
58 ngx_thread_set_tls(ngx_tls_key_t *key, void *data) | |
56 { | 59 { |
57 if (TlsSetValue(*key, data) == 0) { | 60 if (TlsSetValue(*key, data) == 0) { |
58 return ngx_errno; | 61 return ngx_errno; |
59 } | 62 } |
60 | 63 |
61 return 0; | 64 return 0; |
62 } | 65 } |
63 | 66 |
64 | 67 |
65 ngx_mutex_t *ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags) | 68 ngx_mutex_t * |
69 ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags) | |
66 { | 70 { |
67 return (ngx_mutex_t *) 1; | 71 return (ngx_mutex_t *) 1; |
68 } | 72 } |
69 | 73 |
70 | 74 |
71 /* STUB */ | 75 /* STUB */ |
72 | 76 |
73 ngx_int_t | 77 void |
74 ngx_mutex_lock(ngx_mutex_t *m) { | 78 ngx_mutex_lock(ngx_mutex_t *m) { |
75 return NGX_OK; | 79 return; |
76 } | 80 } |
81 | |
77 | 82 |
78 | 83 |
79 ngx_int_t | 84 ngx_int_t |
80 ngx_mutex_trylock(ngx_mutex_t *m) { | 85 ngx_mutex_trylock(ngx_mutex_t *m) { |
81 return NGX_OK; | 86 return NGX_OK; |
82 } | 87 } |
83 | 88 |
89 | |
90 void | |
91 ngx_mutex_unlock(ngx_mutex_t *m) { | |
92 return; | |
93 } | |
94 | |
84 /**/ | 95 /**/ |