[
https://issues.apache.org/jira/browse/TS-4487?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Oknet Xu updated TS-4487:
-------------------------
Description:
the code:
{code}
int64_t r = vc->load_buffer_and_write(towrite, wattempted, total_written, buf,
needs);
{code}
At the end of write_to_net_io,
{code}
if (!buf.reader()->read_avail()) { // should check needs==0
write_disable(nh, vc);
return;
}
if ((needs & EVENTIO_WRITE) == EVENTIO_WRITE) {
write_reschedule(nh, vc);
}
if ((needs & EVENTIO_READ) == EVENTIO_READ) {
read_reschedule(nh, vc);
}
return;
{code}
was:
the code:
{code}
int64_t r = vc->load_buffer_and_write(towrite, wattempted, total_written, buf,
needs);
{code}
At the end of write_to_net_io,
{code}
if (!buf.reader()->read_avail()) { // should check needs==0
write_disable(nh, vc);
return;
}
if ((needs & EVENTIO_WRITE) == EVENTIO_WRITE) {
write_reschedule(nh, vc);
}
// here r>0, don't need to check the needs.
if ((needs & EVENTIO_READ) == EVENTIO_READ) {
read_reschedule(nh, vc);
}
return;
{code}
> Don't reschedule read depend on needs
> -------------------------------------
>
> Key: TS-4487
> URL: https://issues.apache.org/jira/browse/TS-4487
> Project: Traffic Server
> Issue Type: Improvement
> Components: SSL
> Reporter: Oknet Xu
>
> the code:
> {code}
> int64_t r = vc->load_buffer_and_write(towrite, wattempted, total_written,
> buf, needs);
> {code}
> At the end of write_to_net_io,
> {code}
> if (!buf.reader()->read_avail()) { // should check needs==0
> write_disable(nh, vc);
> return;
> }
> if ((needs & EVENTIO_WRITE) == EVENTIO_WRITE) {
> write_reschedule(nh, vc);
> }
> if ((needs & EVENTIO_READ) == EVENTIO_READ) {
> read_reschedule(nh, vc);
> }
> return;
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)