Thread overview
Fiber cross threads terminated
Sep 02, 2016
mogu
Sep 02, 2016
mogu
September 02, 2016
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
September 01, 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
September 02, 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.