Date: Tue, 16 Nov 2010 16:19:03 +0100 From: Joerg Sonnenberger <joerg@britannica.bec.de> To: freebsd-hackers@freebsd.org Subject: Re: Network socket concurrency (userland) Message-ID: <20101116151903.GA2361@britannica.bec.de> In-Reply-To: <ibu503$up9$1@dough.gmane.org> References: <ibu503$up9$1@dough.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Nov 16, 2010 at 03:37:59PM +0100, Ivan Voras wrote: > Are there any standard-defined guarantees for TCP network sockets > used by multiple threads to do IO on them? System calls are atomic relative to each other. They may be partially executed from the perspective of a remote system, e.g. due to segmentation, but one system call will finish before the next call of the same category is started. > Specifically, will multiple write() or send() calls on the same > socket execute serially (i.e. not interfere with each other) and > blocking (until completion) even for large buffer sizes? What about > read() / recv()? All write operations are serialised against each other, just like all read operations are serialised against. Joerg
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101116151903.GA2361>