lkml.org 
[lkml]   [2007]   [Aug]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Finding out socket/pipe connectivity status
    > 	write(stdout, request);
    > /* reference point [A] */
    > read(stdin, response);
    >
    > So my idea had been to launch another thread that monitors stdin for
    > 'breakage' and unmount the fs before a user can start an operation on
    > myfs. So I've been trying to complete the idea to code. You say a
    > broken socket raises the read flag, so:

    Your connection can break at any point even mid-write so you must handle
    it. You have no real choice.

    You can try and spot it earlier by using select/poll and checking for
    error. In which case I'd use poll() as it is a bit more clear about what
    event you get

    Then poll stdin and stdout. The kernel will give you back

    POLLERR - an error condition
    POLLHUP - a hangup

    if at the point you poll an error has already occurred. You can do this
    with select and the socket error and related stuff buts its uglier

    Alan


    -
    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: 2007-08-12 20:37    [W:0.022 / U:60.544 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site