BUG/MINOR: stream: flag TASK_WOKEN_RES not set if task in runqueue
authorEmeric Brun <ebrun@haproxy.com>
Fri, 31 Mar 2017 10:04:09 +0000 (12:04 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 27 Jun 2017 12:37:52 +0000 (14:37 +0200)
commitff4491726f2879ea0ddd69f5c735058938b78476
tree3c02fa1023b9ca381fbfebc643d395779d23bfc2
parent1af20c7161e012136d5e19791c4ff2c9297c1b0e
BUG/MINOR: stream: flag TASK_WOKEN_RES not set if task in runqueue

Under certain circumstances, if a stream's task is first woken up
(eg: I/O event) then notified of the availability of a buffer it
was waiting for via stream_res_wakeup(), this second event is lost
because the flags are only merged after seeing that the task is
running. At the moment it seems that the TASK_WOKEN_RES event is
not explicitly checked for, but better fix this before getting
reports of lost events.

This fix removes this "task running" test which is properly
performed in task_wakeup(), while the flags are properly merged.

It must be backported to 1.7 and 1.6.
include/proto/stream.h