Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 May 1997 11:24:22 -0400 (EDT)
From:      Christopher Sedore <cmsedore@mailbox.syr.edu>
To:        FreeBSD-Hackers@FreeBSD.ORG
Subject:   async socket stuff
Message-ID:  <Pine.SOL.3.95.970527111554.10830E-100000@rodan.syr.edu>
In-Reply-To: <19970527090941.33299@right.PCS>

next in thread | previous in thread | raw e-mail | index | archive | help

I've been thinking about implementing some async socket handling code and
am wondering if someone else is doing this or has done it.  I've been
thinking about two different approaches:

1. Creating a new ioctl set and a few syscalls to allow you to
associate a socket with something like an NT I/O completion port.  This
would allow you to associate a socket descriptor with a queue and each
time the socket's status changed (via sorwakeup or sowwakeup) I'd post an
entry into the queue.  The idea is that rather than using select() and
then searching through a list of descriptors, you could just read them off
one (or many) at a time and do I/O on the appropriate descriptors.   This
seems to me to be more efficient than select().

2. Implementing general async I/O for sockets.  Then, rather than (or
perhaps in addition to) the above functionality, you could use the queue
to hold results of async operations.

I've also thought of adding a call like NT's TransmitFile() (single call
file transfer).

Comments? Suggestions? Criticisms?

-Chris




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SOL.3.95.970527111554.10830E-100000>