October 25, 2013 Portable Async Programming in D2 | ||||
---|---|---|---|---|
| ||||
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 |
October 25, 2013 Re: Portable Async Programming in D2 | ||||
---|---|---|---|---|
| ||||
Posted in reply to eris0xff | On Friday, 25 October 2013 at 16:53:34 UTC, eris0xff wrote:
> 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
I did see that someone was putting together a Google GSOC to implement something like this by either wrapping libev/uv or creating a new boost-like asio implementation inside the std libraries.
eris0xff
|
Copyright © 1999-2021 by the D Language Foundation