Passing delegate indirectly to createLowLevelThread doesn't work

Tejas notrealemail at gmail.com
Mon Jul 26 16:55:41 UTC 2021


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?

Sorry, it seems to work now.

But why didn't it fail when I didn't qualify ```func``` as 
nothrow?




More information about the Digitalmars-d-learn mailing list