On Monday, 30 January 2017 at 18:48:10 UTC, Ali Çehreli wrote:
On 01/30/2017 03:03 AM, Profile Anaysis wrote:
> I need to yield from a complex recursive function too allow
visualizing
> what it is doing.
>
> e.g., if it is a tree searching algorithm, I'd like to yield
for each
> node so that the current state can be shown visually.
I used tree iteration as a Generator example here:
http://ddili.org/ders/d.en/fibers.html
It's in the code where the function 'byNode' appears. (The
example builds on an earlier tree iteration code in the same
chapter.)
Ali
I tried your lambda based fib example and it works as
expected(using a function)
But when I try the class version it crashes without a call stack
or any info(somewhere in the fiber module and an access
violation).
import std.stdio, std.concurrency, core.thread;
class Search : Fiber
{
this() { super(&start); }
int res = 0;
void start()
{
Fiber.yield();
res = 1;
}
}
void main()
{
auto search = new Search();
search.call(); writeln(search.res);
search.call(); writeln(search.res);
search.call(); writeln(search.res); // crashes after 3rd
call(first two work fine)
}
Any ideas what why it is crashing like this?