module core.thread.test; // needs access to getStackTop()/getStackBottom() import core.stdc.stdio; import core.thread; ubyte[16384] data; void showThreadInfo() nothrow { try { auto top = getStackTop(); auto bottom = getStackBottom(); printf("tlsdata: %p\n", data.ptr); printf("stack top: %p\n", getStackTop()); printf("stack bottom:%p\n", getStackBottom()); printf("used stack: %lld\n", cast(ulong)(bottom - top)); } catch(Exception e) { assert(false, e.msg); } } void main() { printf("### main\n"); showThreadInfo(); printf("### thread\n"); auto th = new Thread(&showThreadInfo, 16384); th.start(); th.join(); printf("### lowlevel thread\n"); auto llth = createLowLevelThread(() { showThreadInfo(); }); joinLowLevelThread(llth); }