Hi all,

any idea why the following sample deadlocks on Linux x86_64?
(GDB stacktraces: http://gist.github.com/587964)

---
module test;

import core.thread;
import std.conv;
import std.range;
import std.string;

enum THREADS = iota(0, 9);
enum WORK_RANGE = iota(0, 30000);

void main() {
  Thread[] threads;

  // Invoke the threads.
  foreach (i; THREADS) {
    auto thread = new Thread(&run);
    threads ~= thread;
    thread.start();
  }

  // Wait for the threads to finish.
  foreach (i, thread; threads) {
    thread.join(true);
  }
}

void run() {
  foreach (i; WORK_RANGE) {
string data = to!string(toStringz("Some random string which contains some random words."));
  }
}

Reply via email to