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!!
}
```

Reply via email to