Mercurial > hg > nginx
changeset 913:90ce4d0e3241
fix ngx_http_perl_sleep_handler()
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 13 Dec 2006 12:30:57 +0000 |
parents | 7fa926a7926d |
children | b10286697f8d |
files | src/http/modules/perl/ngx_http_perl_module.c |
diffstat | 1 files changed, 13 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/modules/perl/ngx_http_perl_module.c Tue Dec 12 22:06:03 2006 +0000 +++ b/src/http/modules/perl/ngx_http_perl_module.c Wed Dec 13 12:30:57 2006 +0000 @@ -273,10 +273,22 @@ static void ngx_http_perl_sleep_handler(ngx_http_request_t *r) { + ngx_event_t *wev; + ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "perl sleep handler"); - ngx_http_perl_handle_request(r); + wev = r->connection->write; + + if (wev->timedout) { + wev->timedout = 0; + ngx_http_perl_handle_request(r); + return; + } + + if (ngx_handle_write_event(wev, 0) == NGX_ERROR) { + ngx_http_finalize_request(r, NGX_HTTP_INTERNAL_SERVER_ERROR); + } }