Fiber cross threads terminated

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Sep 1 18:53:58 PDT 2016


On 9/1/16 9:27 PM, mogu wrote:
> Here's my code in main function:
> ```
>     auto fiber = new Fiber({
>         while (true) {
>             Thread.sleep(1.seconds);
>             Fiber.yield;
>         }
>     });
>
>     void foo() {
>         while (true) {
>             fiber.call;
>             //Thread.sleep(1.seconds);
>             //"---".writeln;
>         }
>     }
>
>     new Thread({
>         foo();
>     }).start;
>
>     new Thread({
>         Thread.sleep(500.msecs);
>         foo();
>     }).start;
>
> ```
> If I comment the `fiber.call;`, all works.
> system: ubuntu 16.04LTS
> dmd version: 2.071.1

Fibers in D are not meant to be run in multiple threads.

-Steve


More information about the Digitalmars-d-learn mailing list