Well, I think we could handle the problem in kernel in the following way:
- Add EV_NODATA flag
- In the places that sets EV_NODATA, we also set the EV_EOF using the
logic before 8c4ed4265ed709e0ff2e164b292fd6b3febef5d3
- In the places that test EV_EOF, we change it to test EV_NODATA
- In the places that clears EV_EOF, we also clears EV_NODATA

On Wed, Sep 7, 2011 at 3:18 PM, Andrey N. Oktyabrski (via DragonFly
issue tracker) <sinkn...@leaf.dragonflybsd.org> wrote:
>
> Andrey N. Oktyabrski <a...@bestmx.ru> added the comment:
>
> I have some problems between nginx and backends too.
> Nginx can not see when the backend closed connection.
> The nginx developers said there is a kqueue problem: kqueue does not set 
> EV_EOF
> flag. They has made test program (attached), which works well under the 
> FreeBSD
> and NetBSD, but do not work properly under DragonFly.
>
> Using "select" or "poll" methods in the nginx solves the problem, but kqueue 
> is
> preferred.
>
> $ uname -iprs
> DragonFly 2.10-RELEASE x86_64 X86_64_GENERIC_SMP
>
> _____________________________________________________
> DragonFly issue tracker <b...@lists.dragonflybsd.org>
> <http://bugs.dragonflybsd.org/issue1998>
> _____________________________________________________



-- 
Tomorrow Will Never Die

Reply via email to