Mercurial > hg > nginx
annotate src/os/win32/ngx_thread.c @ 4687:7f50a4063100
Mp4: fixed non-keyframe seeks in some cases (ticket #175).
Number of entries in stsc atom was wrong if we've added an entry to
split a chunk.
Additionally, there is no need to add an entry if we are going to split
last chunk in an entry, it's enough to update the entry we already have.
Previously new entry was added and old one was left as is, resulting in
incorrect entry with zero chunks which might confuse some software.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 18 Jun 2012 14:01:18 +0000 |
parents | 2942a827da09 |
children | 94ce52db3367 |
rev | line source |
---|---|
461 | 1 |
2 /* | |
3 * Copyright (C) Igor Sysoev | |
4412 | 4 * Copyright (C) Nginx, Inc. |
461 | 5 */ |
6 | |
7 | |
8 #include <ngx_config.h> | |
9 #include <ngx_core.h> | |
10 | |
11 | |
12 ngx_int_t ngx_threads_n; | |
13 | |
14 | |
15 static size_t stack_size; | |
16 | |
17 | |
563 | 18 ngx_err_t |
19 ngx_create_thread(ngx_tid_t *tid, | |
20 ngx_thread_value_t (__stdcall *func)(void *arg), void *arg, ngx_log_t *log) | |
461 | 21 { |
2725 | 22 u_long id; |
461 | 23 ngx_err_t err; |
24 | |
2725 | 25 *tid = CreateThread(NULL, stack_size, func, arg, 0, &id); |
461 | 26 |
27 if (*tid != NULL) { | |
2725 | 28 ngx_log_error(NGX_LOG_NOTICE, log, 0, |
29 "create thread " NGX_TID_T_FMT, id); | |
461 | 30 return 0; |
31 } | |
32 | |
33 err = ngx_errno; | |
34 ngx_log_error(NGX_LOG_ALERT, log, err, "CreateThread() failed"); | |
35 return err; | |
36 } | |
37 | |
38 | |
563 | 39 ngx_int_t |
40 ngx_init_threads(int n, size_t size, ngx_cycle_t *cycle) | |
461 | 41 { |
42 stack_size = size; | |
43 | |
44 return NGX_OK; | |
45 } | |
46 | |
47 | |
563 | 48 ngx_err_t |
49 ngx_thread_key_create(ngx_tls_key_t *key) | |
461 | 50 { |
51 *key = TlsAlloc(); | |
52 | |
53 if (*key == TLS_OUT_OF_INDEXES) { | |
54 return ngx_errno; | |
55 } | |
56 | |
57 return 0; | |
58 } | |
59 | |
60 | |
563 | 61 ngx_err_t |
62 ngx_thread_set_tls(ngx_tls_key_t *key, void *data) | |
461 | 63 { |
64 if (TlsSetValue(*key, data) == 0) { | |
65 return ngx_errno; | |
66 } | |
67 | |
68 return 0; | |
69 } | |
70 | |
71 | |
563 | 72 ngx_mutex_t * |
73 ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags) | |
461 | 74 { |
4571
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
75 ngx_mutex_t *m; |
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
76 |
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
77 m = ngx_alloc(sizeof(ngx_mutex_t), log); |
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
78 if (m == NULL) { |
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
79 return NULL; |
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
80 } |
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
81 |
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
82 m->log = log; |
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
83 |
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
84 /* STUB */ |
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
85 |
2942a827da09
Win32: improved ngx_mutex_init() stub (ticket #138).
Maxim Dounin <mdounin@mdounin.ru>
parents:
4412
diff
changeset
|
86 return m; |
461 | 87 } |
501 | 88 |
89 | |
90 /* STUB */ | |
91 | |
563 | 92 void |
501 | 93 ngx_mutex_lock(ngx_mutex_t *m) { |
563 | 94 return; |
501 | 95 } |
96 | |
97 | |
563 | 98 |
501 | 99 ngx_int_t |
100 ngx_mutex_trylock(ngx_mutex_t *m) { | |
101 return NGX_OK; | |
102 } | |
103 | |
563 | 104 |
105 void | |
106 ngx_mutex_unlock(ngx_mutex_t *m) { | |
107 return; | |
108 } | |
109 | |
501 | 110 /**/ |