| Thread overview | |||||
|---|---|---|---|---|---|
|
November 07, 2013 Thread termination conditions in dmd 2.064.2 | ||||
|---|---|---|---|---|
| ||||
I had code that worked in 2.063 that crashes now (on Linux, on Windows it still works). I suspect I was doing something stupid and got lucky, but I'm posting here to make sure. Code:
import std.concurrency;
private void func() {
auto done = false;
while(!done) {
receive(
(OwnerTerminated trm) {
done = true;
}
);
}
}
void main() {
spawn(&func);
}
Changing func like so stops the crashing (which I agree is better code anyway that I just shamelessly stole from TDPL):
private void func() {
for(auto running = true; running;) {
receive(
(OwnerTerminated trm) {
running = false
}
);
}
}
So what's going on? I thought it maybe had to do with synchronisation but doing the write in a synchronized block changed nothing. Bug or me being stupid?
Atila
| ||||
November 07, 2013 Re: Thread termination conditions in dmd 2.064.2 | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Atila Neves | Looking like a bug I think. Changed the code to this and it crashes again:
import std.concurrency;
private void threadWriter() {
for(bool running = true; running;) {
receive(
(Tid i) {
},
(OwnerTerminated trm) {
running = false;
}
);
}
}
void main() {
spawn(&threadWriter);
}
This is on Arch Linux 64-bit with the latest package BTW (updated this morning).
| |||
November 07, 2013 Re: Thread termination conditions in dmd 2.064.2 | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Atila Neves | Am 07.11.2013 11:28, schrieb Atila Neves: > Looking like a bug I think. Changed the code to this and it crashes again: > > import std.concurrency; > > private void threadWriter() { > for(bool running = true; running;) { > receive( > (Tid i) { > }, > (OwnerTerminated trm) { > running = false; > } > ); > } > } > > void main() { > spawn(&threadWriter); > } > > > This is on Arch Linux 64-bit with the latest package BTW (updated this > morning). Possibly related: https://github.com/rejectedsoftware/vibe.d/issues/371 | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply