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 }