vibe.d is blocking threads

Marc Schütz via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Apr 28 01:47:52 PDT 2016


On Wednesday, 27 April 2016 at 23:30:10 UTC, Nicholas Wilson 
wrote:
> On Wednesday, 27 April 2016 at 13:00:29 UTC, RuZzz wrote:
>> Code:
>>     import std.concurrency;
>>     import core.thread;
>>     //import vibe.http.client;      // If uncommented this 
>> line, the thread "worker" does not start
>>     void worker() {
>>         foreach (i; 0 .. 5) {
>>             Thread.sleep(500.msecs);
>>             writeln(i, " (worker)");
>>         }
>>     }
>>
>>     void main() {
>>         spawn(&worker);
>>
>>         foreach (i; 0 .. 5) {
>>             Thread.sleep(300.msecs);
>>             writeln(i, " (main)");
>>         }
>>
>>         writeln("main is done.");
>>     }
>>
>> How to launch threads with vibe.d? It doesn't work at both 
>> compilers.
>
> You don't. vibe.d uses fibers (aka green threads).

That doesn't matter. Native threads should work just fine, I'm 
using them without problems in a vibe.d app.

Could it be that your main() function is never called at all? Try 
to insert a writeln() at the beginning. If so, this could be 
related to the "VibeDefaultMain" setting, see here:
http://vibed.org/docs#custom-main


More information about the Digitalmars-d-learn mailing list