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