| Thread overview | |||||||
|---|---|---|---|---|---|---|---|
|
August 13, 2015 Yieldable function? | ||||
|---|---|---|---|---|
| ||||
Is there any way to have a yieldable function that can be resumed at a later time in D?
Some thing like:
void test()
{
writeln("A");
yeild();
writeln("B");
}
...
auto x = yieldable!test();
x.resume(); // prints "A"
x.resume(); // prints "B"
x.resume(); // throws an error or something, i dont know..
Also how portable is the built in asm support, was thinking about implementing this if it's not already available. Also is there a way to define naked functions in D? I think not but they might make implementing this a little more simple.
| ||||
August 13, 2015 Re: Yieldable function? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Tofu Ninja | http://dlang.org/phobos/core_thread.html#.Fiber | |||
August 13, 2015 Re: Yieldable function? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to MrSmith | On Thursday, 13 August 2015 at 22:29:17 UTC, MrSmith wrote:
> http://dlang.org/phobos/core_thread.html#.Fiber
Man I feel like I saw that before but when I went looking for it I couldn't find it. Didn't think to check in core. :/
Welp that solves my question, thanks :D
| |||
August 13, 2015 Re: Yieldable function? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Tofu Ninja | On Thursday, 13 August 2015 at 22:27:31 UTC, Tofu Ninja wrote: > Also how portable is the built in asm support it varies a bit across compilers (gdc does it differently), and obviously across processors. > Also is there a way to define naked functions in D? Put the `naked;` pseudo-instruction at the top of a function in an asm block. http://dlang.org/iasm.html | |||
August 13, 2015 Re: Yieldable function? | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Tofu Ninja | On 08/13/2015 03:36 PM, Tofu Ninja wrote: > On Thursday, 13 August 2015 at 22:29:17 UTC, MrSmith wrote: >> http://dlang.org/phobos/core_thread.html#.Fiber > > Man I feel like I saw that before but when I went looking for it I > couldn't find it. Didn't think to check in core. :/ > > Welp that solves my question, thanks :D std.concurrency.Generator can present the yielded values as a range: http://ddili.org/ders/d.en/fibers.html#ix_fibers.Generator,%20std.concurrency Ali | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply