Date: Sun, 14 Feb 1999 17:09:00 -0800 From: Don Lewis <Don.Lewis@tsc.tdk.com> To: Terry Lambert <tlambert@primenet.com>, kuku@gilberto.physik.RWTH-Aachen.DE (Christoph Kukulies) Cc: hackers@FreeBSD.ORG Subject: Re: portability of shm, mmap, pipes and socket IPC Message-ID: <199902150109.RAA09078@salsa.gv.tsc.tdk.com> In-Reply-To: Terry Lambert <tlambert@primenet.com> "Re: portability of shm, mmap, pipes and socket IPC" (Feb 9, 10:46pm)
next in thread | previous in thread | raw e-mail | index | archive | help
On Feb 9, 10:46pm, Terry Lambert wrote: } Subject: Re: portability of shm, mmap, pipes and socket IPC } FreeBSD does not select writeable on sockets. This does not appear to be correct. What about the call path: select() selscan() (*fp->f_ops->fo_poll)() [ soo_poll() for sockets ] so->so_proto->pr_usrreqs->pru_sopoll() [ sopoll() for TCP ] sowriteable() } Sockets can be } written if there are mbuf's available, and mbuf's can } become unavailable asynchronously between the select } coming true and the subsequent write. While it is certainly possible to get an occasional false positive if an mbuf isn't available, selecting for write is still useful to keep from spinning on a socket that isn't writeable because its TCP send window is full. This condition can persist indefinitely and the socket won't become writeable again until the peer consumes some data. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199902150109.RAA09078>