import std.thread;

class Threader : Thread {
	
	int run() {
		for(uint i = 0; i < 1000; i++) {
			// waste some time
		}
		
		delete this;
		return 0;
	}
	
	~this() {
		printf("deconstructing\n");
	}
}

void main() {
	for(uint i = 0; i < 4000; i++) {
		Threader t;
		t = new Threader;
		printf("thread %d\n", i);
		t.start();
	}
}