PERFORCE change 43987 for review
Sam Leffler
sam at FreeBSD.org
Tue Dec 16 15:32:06 PST 2003
http://perforce.freebsd.org/chv.cgi?CH=43987
Change 43987 by sam at sam_ebb on 2003/12/16 15:31:05
o correct exit case in soreceive to unlock the socket buffer
o don't sbunlock in soreceive when restarting when no data
has been transferred (note this is correct as previously
we unlocked the sockbuf whenever we blocked but now we keep
the sockbuf locked for the duration of a receive which means
receives on a socket are single-threaded)
Affected files ...
.. //depot/projects/netperf+sockets/sys/kern/uipc_socket.c#6 edit
Differences ...
==== //depot/projects/netperf+sockets/sys/kern/uipc_socket.c#6 (text+ko) ====
@@ -889,7 +889,7 @@
SBLASTMBUFCHK(&so->so_rcv);
error = sbwait(&so->so_rcv);
if (error)
- goto out;
+ goto release;
goto restart;
}
dontblock:
@@ -1131,10 +1131,8 @@
(*pr->pr_usrreqs->pru_rcvd)(so, flags);
}
if (orig_resid == uio->uio_resid && orig_resid &&
- (flags & MSG_EOR) == 0 && (so->so_state & SS_CANTRCVMORE) == 0) {
- sbunlock(&so->so_rcv);
+ (flags & MSG_EOR) == 0 && (so->so_state & SS_CANTRCVMORE) == 0)
goto restart;
- }
if (flagsp)
*flagsp |= flags;
More information about the p4-projects
mailing list