38 lines
861 B
D
38 lines
861 B
D
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);
|
|
}
|