Portable Async Programming in D2

eris0xff jvburnes at gmail.com
Fri Oct 25 09:53:32 PDT 2013


I've been away from D for a while.  While I do have Andrei's 
book, most of my experience has been with D1 and generally very 
positive.

Anyway, I've been doing a fair amount of async, callback-oriented 
network programming using libuv in C in my curent project.  I'd 
like to implement my next version of the project in D version 2.

I don't want to use libuv if there are portable, reliable and 
built-in D mechanisms to:

1. Manage multi-threaded, message passing, event-oriented 
callback loops.
2. Portable task/thread pools with priority.
3. Transparent select/epoll implementation on POSIX and IO 
Completion on Windows.

I'm know that threading and task pools are available and I think 
(perhaps) the message send functionality has a priority send.

The transparent event-oriented async I/O is where I get a little 
fuzzy in the std/core libraries.  I have very little information 
on how async I/O is implemented (if at all) in D standard 
libraries, especially whether it uses IO completion on Windows.

Please excuse if this isn't completely clear, I'm still working 
on 1st cup of coffee.

thx

eris0xff


More information about the Digitalmars-d mailing list