X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fsocket-util.c;h=7d54a4818514416ce827346efb489cfea5d13bed;hb=1374258f0ae5beccd71a62f710dce263922f6dc3;hp=ca08de5a597bee0268080faac8d3e5e09a660ad9;hpb=6de5998363590434810f913b0bb8428e5fa63cd7;p=openvswitch diff --git a/lib/socket-util.c b/lib/socket-util.c index ca08de5a..7d54a481 100644 --- a/lib/socket-util.c +++ b/lib/socket-util.c @@ -201,6 +201,10 @@ make_unix_socket(int style, bool nonblock, bool passcred UNUSED, return -errno; } + /* Set nonblocking mode right away, if we want it. This prevents blocking + * in connect(), if connect_path != NULL. (In turn, that's a corner case: + * it will only happen if style is SOCK_STREAM or SOCK_SEQPACKET, and only + * if a backlog of un-accepted connections has built up in the kernel.) */ if (nonblock) { int flags = fcntl(fd, F_GETFL, 0); if (flags == -1) {