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