lkml.org 
[lkml]   [2000]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: kqueue microbenchmark results
    Jonathan Lemon wrote:
    >
    > Also, consider the following scenario for the proposed get_event():
    >
    > 1. packet arrives, queues an event.
    > 2. user retrieves event.
    > 3. second packet arrives, queues event again.
    > 4. user reads() all data.
    >
    > Now, next time around the loop, we get a notification for an event
    > when there is no data to read. The application now must be prepared
    > to handle this case (meaning no blocking read() calls can be used).
    >
    > Also, what happens if the user closes the socket after step 4 above?

    Depends on the implementation. If the item in the queue is the
    struct file (or whatever an fd indexes to), then the implementation
    can only queue the fd once. This also avoids the problem with
    closing sockets - close() would naturally do a list_del() or whatever
    on the struct file.

    At least I think it could be implemented this way...

    gid



    >
    > The user now receives a notification for a fd which no longer exists,
    > or possibly has been reused for another connection. This may or may
    > not make a difference to the application, but it must be prepared to
    > handle it anyway. I believe that Zack Brown ran into this problem with
    > one of the webservers he was writing.
    >
    > > > You can find my paper at http://people.freebsd.org/~jlemon
    > >
    > > I'll go and read it now. :)
    >
    > The paper talks about some of the issues we have been discussing, as
    > well as the design rationale behind kqueue. I'd be happy to answer
    > any questions about the paper.
    > --
    > Jonathan
    > -
    > 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/
    -
    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/

    \
     
     \ /
      Last update: 2005-03-22 12:45    [W:0.027 / U:242.120 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site