mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 07:07:04 +02:00
BUG/MEDIUM: applet: Report a send activity everytime data were sent
In the same way than for stream-connectors (see "BUG/MEDIUM: stconn: Report a send activity everytime data were sent" for details), we now report a send activity everytime something was consumed by an applet, even if some output data remains blocked into the channel's buffer. This patch must be backported to 2.8.
This commit is contained in:
parent
3083fd90e1
commit
2a51d5b6ea
13
src/applet.c
13
src/applet.c
@ -458,9 +458,13 @@ struct task *task_run_applet(struct task *t, void *context, unsigned int state)
|
||||
sc_oc(sc)->flags |= CF_WRITE_EVENT | CF_WROTE_DATA;
|
||||
if (sco->room_needed < 0 || channel_recv_max(sc_oc(sc)) >= sco->room_needed)
|
||||
sc_have_room(sco);
|
||||
sc_ep_report_send_activity(sc);
|
||||
}
|
||||
else {
|
||||
if (!sco->room_needed)
|
||||
sc_have_room(sco);
|
||||
sc_ep_report_blocked_send(sc);
|
||||
}
|
||||
else if (!sco->room_needed)
|
||||
sc_have_room(sco);
|
||||
|
||||
if (sc_ic(sc)->flags & CF_READ_EVENT)
|
||||
sc_ep_report_read_activity(sc);
|
||||
@ -468,11 +472,6 @@ struct task *task_run_applet(struct task *t, void *context, unsigned int state)
|
||||
if (sc_waiting_room(sc) && (sc->flags & SC_FL_ABRT_DONE)) {
|
||||
sc_ep_set(sc, SE_FL_EOS|SE_FL_ERROR);
|
||||
}
|
||||
else if (channel_is_empty(sc_oc(sc)))
|
||||
sc_ep_report_send_activity(sc);
|
||||
else {
|
||||
sc_ep_report_blocked_send(sc);
|
||||
}
|
||||
|
||||
/* measure the call rate and check for anomalies when too high */
|
||||
if (((b_size(sc_ib(sc)) && sc->flags & SC_FL_NEED_BUFF) || // asks for a buffer which is present
|
||||
|
Loading…
Reference in New Issue
Block a user