On Mon, 5 Nov 2012 23:06:20 -0500, Nick Sabalausky wrote:

Does vibe.d's TCP stuff have anything along the lines of the
BSD-style sockets select()?

Not in that exact form, but using rawYield() until InputStream.dataAvailableForRead() (on any of the connections) becomes true would be similar for waiting for the first data that comes available.

But usually it would be simpler/more robust to just have a separate task for each connection that performs normal, blocking operations. A vibe.core.signal.Signal can then be used to wake up a central coordinator task that handles each event appropriately.