Re: PROBLEM: select() on TCP socket sleeps for 1 tick even if data available

From: Edgar Toernig (froese@gmx.de)
Date: Sat Jan 20 2001 - 16:58:10 EST

  • Next message: Andi Kleen: "Re: md= broken. Found problem. Can't fix it. : ("

    Michael Lindner wrote:
    >[...]
    > send(s, ".", 1, 0);
    >[...]
    > while (select(r+1, &readfds, 0, 0, 0) > 0) {
    >[...]
    >[select returns only after about 1 HZ]

    Ever heard of nagle? (If not, there's a long thread about
    it on the mailing list *g*)

    It's not the select that waits. It's a delay in the tcp send
    path waiting for more data. Try disabling it:

            int f=1;
            setsockopt(s, SOL_TCP, TCP_NODELAY, &f, sizeof(f));

    Ciao, ET.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    Please read the FAQ at http://www.tux.org/lkml/



    This archive was generated by hypermail 2b29 : Sat Jan 20 2001 - 17:29:38 EST