On Monday, 26 July 2021 at 16:46:40 UTC, Tejas wrote:
On Monday, 26 July 2021 at 15:42:44 UTC, Paul Backus wrote:
On Monday, 26 July 2021 at 15:29:26 UTC, Tejas wrote:
```d
import std;
import core.thread.osthread;
void delegate() f;
void main()
{
void func(){}
f = &func;
createLowLevelThread(&func, 2<<30);//works
createLowLevelThread(f, 2<<30);// doesn't work!!
}
```
Can someone help?
The delegate must be `nothrow`:
```d
void delegate() nothrow f;
```
Doesn't seem to matter. I tried that beforehand. And even if it
did why does passing it directly work without explicitly
qualifying it as nothrow then?
It does work for me. To me running the following explains why:
```d
import std;
import core.thread.osthread;
void delegate() f;
void main()
{
void func(){}
f = &func;
pragma(msg,typeof(&func));
pragma(msg,typeof(f));
createLowLevelThread(&func, 2<<30);//works
//createLowLevelThread(f, 2<<30);// doesn't work!!
}
```