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 /**/