[LEDE-DEV] [PATCH] uloop: use a waker for notifying sigchld and loop cancel events

Felix Fietkau nbd at nbd.name
Wed Jun 15 06:16:06 PDT 2016


On 2016-06-15 15:13, Hans Dedecker wrote:
> On Wed, Jun 15, 2016 at 11:58 AM, Felix Fietkau <nbd at nbd.name> wrote:
>> On 2016-06-15 11:39, Conor O'Gorman wrote:
>>> On 09/06/16 03:20, Yousong Zhou wrote:
>>>> Fix a race condition when do_sigchld, uloop_cancelled were set just
>>>> before epoll_wait(timeout=-1), resulting the loop stuck in the syscall
>>>> without noticing the events just happened
>>>>
>>>> Signed-off-by: Yousong Zhou <yszhou4tech at gmail.com>
>>>> ---
>>>>   uloop-epoll.c  |  2 +-
>>>>   uloop-kqueue.c |  2 +-
>>>>   uloop.c        | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
>>>>   3 files changed, 63 insertions(+), 6 deletions(-)
>>>>
>>> Why not change the timeout?
>> Changing the timeout would not fix the race, and it would lead to
>> unnecessary process wakeups and extra latency for signal processing.
>>
>> - Felix
>>
>> _______________________________________________
>> Lede-dev mailing list
>> Lede-dev at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/lede-dev
> Could it be that the wiker_pipe does not get properly initialized as
> waker_pipe never is assigned a fd value ?
I accidentally dropped that in a copy&paste screwup. Fix pushed to git.

Thanks,

- Felix



More information about the Lede-dev mailing list