Asynchronous Programming and Eventhandling in D

rikki cattermole via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jul 6 01:51:35 PDT 2016


On 06/07/2016 8:39 PM, chmike wrote:
> On Tuesday, 5 July 2016 at 20:38:53 UTC, Eugene Wissner wrote:
>> On Tuesday, 5 July 2016 at 08:24:43 UTC, O/N/S wrote:
>>> Hi ("GrĂ¼ss Gott")
>>>
>>> I like the asynchronous events in Javascript.
>>> Is something similar possible in D?
>>>
>>> Found Dragos Carp's asynchronous library
>>> (https://github.com/dcarp/asynchronous).
>>> Are there any more integrated (in Phobos/in D) ways to work
>>> asynchronously?
>>>
>>> An example: One server ask a second server to calculate something big.
>>> The first server continues with his work, until the answer come back
>>> from the second.
>>> And so on...
>>>
>>> Using threads or fibers would be a way, but has not the same elegancy
>>> like the Javascript way. (To avoid discussions: D is better ;-)
>>>
>>>
>>> Greetings from Munich,
>>> Ozan
>> Servus,
>>
>> I'm currently rewriting the base skeleton of libev in D (only for
>> linux for now) for web development aswell. And the next step would be
>> data structures, basic server, futures and yo on...
>> I was working with dcarp's asynchronous and i found it very very good.
>> It is till now the best I've seen in D for async programming ( I mean
>> its design and usability).
>>
>> Can you describe what would you like to see more concretly. I know js
>> but how is it supposed to work for D? Maybe you can give some example,
>> kind of pseudo code? It would help me much to build a concept and
>> maybe we will see someday something usable in this area :)
>
> The problem I see with libev is that it isn't compatible with the CPIO
> API of windows.
> The C++ boost asio library, on the contrary, is compatible with the
> select/epoll/kqueue model and the Windows CPIO model.
>
> This is the reason I started on a D implementation of asio I called
> dasio [https://github.com/chmike/dasio]. Unfortunately my alimentary
> work didn't leave me any time to make progress on it. The only thing I
> manage to implement so far is asio's error code system.
>
> I'm glad to see other people see an interest to work on this. We
> definitely should find a way to combine our efforts. That is already a
> significant work made with the other libraries.
>
> My feeling is that providing support for very efficient IO in Phobos
> might have a strong impact on D's visibility and adoption for backend
> applications (e.g. servers). Performance is a very strong argument for
> adoption is such context.
>
> A list of requirements has been already published on the wiki.
>
> What I think is now missing is a benchmarking tool so that we can get
> numbers for each async lib implementation that we can also compare with
> a raw C implementation using the native functions.

Hmm interesting way to do errors, might have to steal that for 
http://spew.cf



More information about the Digitalmars-d-learn mailing list