Re: Signals lost when using asynchronous IO

From: Andi Kleen (ak@suse.de)
Date: Wed Jul 12 2000 - 12:06:54 EDT

  • Next message: H. Peter Anvin: "Re: IBM Rapid Access Keyboard"

    On Wed, Jul 12, 2000 at 11:08:53AM +0200, Mikael Vidstedt wrote:
    >
    > I'm trying to use non-blocking asynchronous IO, setting a user-defined
    > real-time signal to be sent when IO is completed on a socket. This works
    > fine most of the time, and I get the specified signal when new data is
    > available. However, sometimes signals appear to be lost. Debugging
    > indicates that this happens when the remote end closes the socket. The
    > problem only occurs when there are many sockets active, all using
    > asynchronous IO, and many signals are to be sent. And, yes, I do check for
    > SIGIO signals too, but none are sent (i.e. the IO list is not saturated).
    >
    > The sockets are created as (AF_INET, SOCK_STREAM), and are set to be
    > O_NONBLOCK|O_ASYNC using fcntl(). The user-defined signal is the first
    > real-time signal (value 32).
    >
    > Is this a known problem, and if so, is there a work-around?

    Stephen Tweedie fixed it some time ago. The fix should be in one
    of the 2.2.17pre kernels.

    -Andi

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



    This archive was generated by hypermail 2b29 : Wed Jul 12 2000 - 12:12:15 EDT