Mercurial > hg > nginx-vendor-0-6
comparison src/event/modules/ngx_aio_module.c @ 274:052a7b1d40e5 NGINX_0_5_7
nginx 0.5.7
*) Feature: the ssl_session_cache storage optimization.
*) Bugfixes in the "ssl_session_cache" and "limit_zone" directives.
*) Bugfix: the segmentation fault was occurred on start or while
reconfiguration if the "ssl_session_cache" or "limit_zone"
directives were used on 64-bit platforms.
*) Bugfix: a segmentation fault occurred if the "add_before_body" or
"add_after_body" directives were used and there was no
"Content-Type" header line in response.
*) Bugfix: the OpenSSL library was always built with the threads
support.
Thanks to Den Ivanov.
*) Bugfix: the PCRE-6.5+ library and the icc compiler compatibility.
author | Igor Sysoev <http://sysoev.ru> |
---|---|
date | Mon, 15 Jan 2007 00:00:00 +0300 |
parents | 408f195b3482 |
children | f7cd062ee035 |
comparison
equal
deleted
inserted
replaced
273:60df8db42ffb | 274:052a7b1d40e5 |
---|---|
164 { | 164 { |
165 return ngx_kqueue_module_ctx.actions.process_events(cycle, timer, flags); | 165 return ngx_kqueue_module_ctx.actions.process_events(cycle, timer, flags); |
166 } | 166 } |
167 | 167 |
168 #endif /* NGX_HAVE_KQUEUE */ | 168 #endif /* NGX_HAVE_KQUEUE */ |
169 | |
170 | |
171 #if 0 | |
172 | |
173 /* 1 */ | |
174 int ngx_posix_aio_process_events(ngx_log_t *log) | |
175 { | |
176 listen via SIGIO; | |
177 aio_* via SIGxxx; | |
178 | |
179 sigsuspend()/sigwaitinfo()/sigtimedwait(); | |
180 } | |
181 | |
182 /* 2 */ | |
183 int ngx_posix_aio_process_events(ngx_log_t *log) | |
184 { | |
185 unmask signal | |
186 | |
187 listen via SIGIO; | |
188 | |
189 /* BUG: SIGIO can be delivered before aio_*() */ | |
190 | |
191 aio_suspend()/aiowait()/aio_waitcomplete() with timeout | |
192 | |
193 mask signal | |
194 | |
195 if (ngx_socket_errno == NGX_EINTR) | |
196 look listen | |
197 select()/accept() nb listen sockets | |
198 else | |
199 aio | |
200 } | |
201 | |
202 /* 3 */ | |
203 int ngx_posix_aio_process_events(ngx_log_t *log) | |
204 { | |
205 #if 0 | |
206 unmask signal | |
207 | |
208 /* BUG: AIO signal can be delivered before select() */ | |
209 | |
210 select(listen); | |
211 | |
212 mask signal | |
213 #endif | |
214 | |
215 pselect(listen, mask); | |
216 | |
217 if (ngx_socket_errno == NGX_EINTR) | |
218 look ready array | |
219 } | |
220 | |
221 void aio_sig_handler(int signo, siginfo_t *siginfo, void *context) | |
222 { | |
223 push siginfo->si_value.sival_ptr | |
224 } | |
225 | |
226 #endif |