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