I've tested
dmd master 193230b
dmd v2.112.1
ldc    1.42.0
ldc    1.41.0
ldc    1.36.0
ldc    1.32.2
on linux and all of them exit the child thread without an error message.

I would think that this is a bug.
But this seems like this has been around for a while and so I'm a little confused as I'd think someone other than me would have tripped over this by now.

```d
import std.concurrency;
import std.stdio : writeln;

void main(string[] args)
{
    Tid thread = spawn(&workerThread);
    // assert(false); // This works.
    // User input so this can't be ctfe.
    send(thread, args.length);
    receive((Tid tid) {});
}

void workerThread()
{
    size_t index;

    receive((size_t inIndex) {index = inIndex;});
    writeln("before");

    assert(index == 9999); // This just exits.

    writeln("after");
    send(ownerTid(), thisTid());
}
```
  • Assert in child ... FinalEvilution via Digitalmars-d-learn
    • Re: Assert ... Ali Çehreli via Digitalmars-d-learn
      • Re: Ass... FinalEvilution via Digitalmars-d-learn
        • Re:... FinalEvilution via Digitalmars-d-learn
      • Re: Ass... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
        • Re:... FinalEvilution via Digitalmars-d-learn

Reply via email to