comparison src/os/unix/ngx_solaris_sendfilev_chain.c @ 5868:6bbad2e73245

Fixed counting of sent bytes in the send chain functions on EINTR. Previously, a value of the "send" variable wasn't properly adjusted in a rare case when syscall was interrupted by a signal. As a result, these functions could send less data than the limit allows.
author Valentin Bartenev <vbart@nginx.com>
date Wed, 27 Aug 2014 20:51:01 +0400
parents b63e829621ab
children de68ed551bfb
comparison
equal deleted inserted replaced
5867:26d28506282a 5868:6bbad2e73245
198 c->sent += sent; 198 c->sent += sent;
199 199
200 in = ngx_handle_sent_chain(in, sent); 200 in = ngx_handle_sent_chain(in, sent);
201 201
202 if (eintr) { 202 if (eintr) {
203 send = prev_send + sent;
203 continue; 204 continue;
204 } 205 }
205 206
206 if (send - prev_send != (off_t) sent) { 207 if (send - prev_send != (off_t) sent) {
207 wev->ready = 0; 208 wev->ready = 0;