That should not be the case. Last time I checked, I though we set the timeout then sent 64K (?) chunks then reset the timeout for the next 64k chunk. This is -eaxactly- what 1.3 does on Unix (where signals are used as the timeout mechanism). This has someone changed that w/o my noticing? I'll check later...


No, especially not in the case of mmaps.  The way filters, brigades and
buckets work, you can end up with a 16MB sendfile or 4MB mmap.  In
the later case, you may have 4MB * 16 iovecs in a single WSASend.

Humm... I am wondering if breaking up sends should really be the responsibility of APR. Consider that the application sets the send timeout, the application understands how its expected to behave and what kind of link it is talking over. Seems it should be able to control the size of the buffer to send and the time it will allow for it to be sent. Using that line of reasoning, one could argue that if the app (httpd in this case) sent to APR a 4MB mmap to send but did not set an appropriate timeout, that it is httpd that is at fault if the send does not complete before the timeout fires.


I agree that some kind of progress indicator would be the best solution.

Bill





Reply via email to