Mercurial > hg > nginx
comparison src/event/modules/ngx_devpoll_module.c @ 194:2357fa41738a
nginx-0.0.1-2003-11-21-09:30:49 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Fri, 21 Nov 2003 06:30:49 +0000 |
parents | 9f3a78b06c48 |
children | 1119faf4635a |
comparison
equal
deleted
inserted
replaced
193:dd66383796a5 | 194:2357fa41738a |
---|---|
99 }; | 99 }; |
100 | 100 |
101 | 101 |
102 static int ngx_devpoll_init(ngx_cycle_t *cycle) | 102 static int ngx_devpoll_init(ngx_cycle_t *cycle) |
103 { | 103 { |
104 int n; | 104 size_t n; |
105 ngx_devpoll_conf_t *dpcf; | 105 ngx_devpoll_conf_t *dpcf; |
106 | 106 |
107 dpcf = ngx_event_get_conf(cycle->conf_ctx, ngx_devpoll_module); | 107 dpcf = ngx_event_get_conf(cycle->conf_ctx, ngx_devpoll_module); |
108 | 108 |
109 ngx_log_debug(cycle->log, "CH: %d" _ dpcf->changes); | 109 ngx_log_debug(cycle->log, "CH: %d" _ dpcf->changes); |
120 } | 120 } |
121 | 121 |
122 if (max_changes < dpcf->changes) { | 122 if (max_changes < dpcf->changes) { |
123 if (nchanges) { | 123 if (nchanges) { |
124 n = nchanges * sizeof(struct pollfd); | 124 n = nchanges * sizeof(struct pollfd); |
125 if (write(dp, change_list, n) != n) { | 125 if ((size_t) write(dp, change_list, n) != n) { |
126 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, | 126 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno, |
127 "write(/dev/poll) failed"); | 127 "write(/dev/poll) failed"); |
128 return NGX_ERROR; | 128 return NGX_ERROR; |
129 } | 129 } |
130 | 130 |
269 } | 269 } |
270 | 270 |
271 | 271 |
272 static int ngx_devpoll_set_event(ngx_event_t *ev, int event, u_int flags) | 272 static int ngx_devpoll_set_event(ngx_event_t *ev, int event, u_int flags) |
273 { | 273 { |
274 int n; | 274 size_t n; |
275 ngx_connection_t *c; | 275 ngx_connection_t *c; |
276 | 276 |
277 c = ev->data; | 277 c = ev->data; |
278 | 278 |
279 #if (NGX_DEBUG_EVENT) | 279 #if (NGX_DEBUG_EVENT) |
284 if (nchanges >= max_changes) { | 284 if (nchanges >= max_changes) { |
285 ngx_log_error(NGX_LOG_WARN, ev->log, 0, | 285 ngx_log_error(NGX_LOG_WARN, ev->log, 0, |
286 "/dev/pool change list is filled up"); | 286 "/dev/pool change list is filled up"); |
287 | 287 |
288 n = nchanges * sizeof(struct pollfd); | 288 n = nchanges * sizeof(struct pollfd); |
289 if (write(dp, change_list, n) != n) { | 289 if ((size_t) write(dp, change_list, n) != n) { |
290 ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_errno, | 290 ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_errno, |
291 "write(/dev/poll) failed"); | 291 "write(/dev/poll) failed"); |
292 return NGX_ERROR; | 292 return NGX_ERROR; |
293 } | 293 } |
294 | 294 |
304 | 304 |
305 nchanges++; | 305 nchanges++; |
306 | 306 |
307 if (flags & NGX_CLOSE_EVENT) { | 307 if (flags & NGX_CLOSE_EVENT) { |
308 n = nchanges * sizeof(struct pollfd); | 308 n = nchanges * sizeof(struct pollfd); |
309 if (write(dp, change_list, n) != n) { | 309 if ((size_t) write(dp, change_list, n) != n) { |
310 ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_errno, | 310 ngx_log_error(NGX_LOG_ALERT, ev->log, ngx_errno, |
311 "write(/dev/poll) failed"); | 311 "write(/dev/poll) failed"); |
312 return NGX_ERROR; | 312 return NGX_ERROR; |
313 } | 313 } |
314 | 314 |
319 } | 319 } |
320 | 320 |
321 | 321 |
322 int ngx_devpoll_process_events(ngx_log_t *log) | 322 int ngx_devpoll_process_events(ngx_log_t *log) |
323 { | 323 { |
324 int events, n, i, j; | 324 int events, i, j; |
325 size_t n; | |
325 ngx_msec_t timer; | 326 ngx_msec_t timer; |
326 ngx_err_t err; | 327 ngx_err_t err; |
327 ngx_cycle_t **cycle; | 328 ngx_cycle_t **cycle; |
328 ngx_epoch_msec_t delta; | 329 ngx_epoch_msec_t delta; |
329 ngx_connection_t *c; | 330 ngx_connection_t *c; |
335 if (timer) { | 336 if (timer) { |
336 ngx_gettimeofday(&tv); | 337 ngx_gettimeofday(&tv); |
337 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000; | 338 delta = tv.tv_sec * 1000 + tv.tv_usec / 1000; |
338 | 339 |
339 } else { | 340 } else { |
340 timer = INFTIM; | 341 timer = (ngx_msec_t) INFTIM; |
341 delta = 0; | 342 delta = 0; |
342 } | 343 } |
343 | 344 |
344 #if (NGX_DEBUG_EVENT) | 345 #if (NGX_DEBUG_EVENT) |
345 ngx_log_debug(log, "devpoll timer: %d" _ timer); | 346 ngx_log_debug(log, "devpoll timer: %d" _ timer); |
346 #endif | 347 #endif |
347 | 348 |
348 if (nchanges) { | 349 if (nchanges) { |
349 n = nchanges * sizeof(struct pollfd); | 350 n = nchanges * sizeof(struct pollfd); |
350 if (write(dp, change_list, n) != n) { | 351 if ((size_t) write(dp, change_list, n) != n) { |
351 ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, | 352 ngx_log_error(NGX_LOG_ALERT, log, ngx_errno, |
352 "write(/dev/poll) failed"); | 353 "write(/dev/poll) failed"); |
353 return NGX_ERROR; | 354 return NGX_ERROR; |
354 } | 355 } |
355 } | 356 } |