Thread overview
Async await problem solved
Dec 09, 2020
aberba
Dec 11, 2020
RSY
Dec 11, 2020
Dukc
Dec 11, 2020
Jacob Carlborg
December 09, 2020
It's been there for a while.

> This library provides a very easy-to-use async/await library for D. It consists of only three functions: async, await, and startScheduler. The library is build on top of D's fibers and allows for easier cooperative multitasking.

import std.stdio;

int calculateTheAnswer() {
	import core.thread : Thread;
	Thread.sleep(5.seconds);
	return 42;
}

void doTask() {
	writeln("Calculating the answer to life, the universe, and everything...");
	int answer = await(calculateTheAnswer());
	writeln("The answer is: ", answer);
}

void main() {
	startScheduler({
		doTask();
	});
}

https://code.dlang.org/packages/dawait
December 11, 2020
On Wednesday, 9 December 2020 at 09:16:31 UTC, aberba wrote:
> It's been there for a while.
>
>> This library provides a very easy-to-use async/await library for D. It consists of only three functions: async, await, and startScheduler. The library is build on top of D's fibers and allows for easier cooperative multitasking.
>
> import std.stdio;
>
> int calculateTheAnswer() {
> 	import core.thread : Thread;
> 	Thread.sleep(5.seconds);
> 	return 42;
> }
>
> void doTask() {
> 	writeln("Calculating the answer to life, the universe, and everything...");
> 	int answer = await(calculateTheAnswer());
> 	writeln("The answer is: ", answer);
> }
>
> void main() {
> 	startScheduler({
> 		doTask();
> 	});
> }
>
> https://code.dlang.org/packages/dawait

nice library! thanks for sharing!
December 11, 2020
On Wednesday, 9 December 2020 at 09:16:31 UTC, aberba wrote:
>> This library provides a very easy-to-use async/await library for D. It consists of only three functions: async, await, and startScheduler. The library is build on top of D's fibers and allows for easier cooperative multitasking.

How does this differ from std.concurrency.Generator?


December 11, 2020
On 2020-12-09 10:16, aberba wrote:
> It's been there for a while.
> 
>> This library provides a very easy-to-use async/await library for D. It consists of only three functions: async, await, and startScheduler. The library is build on top of D's fibers and allows for easier cooperative multitasking.
> 
> import std.stdio;
> 
> int calculateTheAnswer() {
>      import core.thread : Thread;
>      Thread.sleep(5.seconds);
>      return 42;
> }
> 
> void doTask() {
>      writeln("Calculating the answer to life, the universe, and everything...");
>      int answer = await(calculateTheAnswer());
>      writeln("The answer is: ", answer);
> }
> 
> void main() {
>      startScheduler({
>          doTask();
>      });
> }
> 
> https://code.dlang.org/packages/dawait

I don't think it's that simple. To be efficient you need to use no-blocking IO and have an event loop as well.

-- 
/Jacob Carlborg