Fiber cross threads terminated

mogu via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Sep 1 19:24:01 PDT 2016


On Friday, 2 September 2016 at 01:53:58 UTC, Steven Schveighoffer 
wrote:
> 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

Thanks. I got it.


More information about the Digitalmars-d-learn mailing list