lkml.org 
[lkml]   [2002]   [Oct]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: epoll (was Re: [PATCH] async poll for 2.5)
    Erich Nahum wrote:
    >>There're a couple of reason's why the drop of the initial event is a waste
    >>of time :
    >>
    >>1) The I/O write space is completely available at fd creation
    >>2) For sockets it's very likely that the first packet brought something
    >> more than the SYN == The I/O read space might have something for you
    >>
    >>I strongly believe that the concept "use the fd until EAGAIN" should be
    >>applied even at creation time, w/out making exceptions to what is the
    >>API's rule to follow.
    >
    >
    > There is a third way, described in the original Banga/Mogul/Druschel
    > paper, available via Dan Kegel's web site: extend the accept() call to
    > return whether an event has already happened on that FD. That way you
    > can service a ready FD without reading /dev/epoll or calling
    > sigtimedwait, and you don't have to waste a read() call on the socket
    > only to find out you got EAGAIN.
    >
    > Of course, this changes the accept API, which is another matter. But
    > if we're talking a new API then there's no problem.

    That would be the fastest way of finding out, maybe.
    But I'd rather use a uniform way of notifying about readiness events.
    Rather than using a new API (acceptEx :-) or a rule ("always ready initially"),
    when not just deliver the initial readiness event via the usual channel?
    And for ease of coding for the moment, David can just deliver
    a 'ready for everything' event initially unconditionally.

    No API changes, just a simple, uniform way of tickling the user's
    "I gotta do I/O" code.
    - Dan


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

    \
     
     \ /
      Last update: 2005-03-22 13:30    [W:0.023 / U:61.340 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site