BetterC + Windows + setjmp longjmp

Diederik de Groot ddegroot at talon.nl
Tue Sep 18 01:21:46 UTC 2018


On Tuesday, 18 September 2018 at 00:24:23 UTC, SrMordred wrote:
> On Tuesday, 18 September 2018 at 00:12:35 UTC, Diederik de 
> Groot wrote:
>> On Monday, 17 September 2018 at 23:44:41 UTC, SrMordred wrote:
>>> [...]
>>
>> You can use core.stdc.signal
>> nothrow @nogc @system sigfn_t signal(SIGSEGV, sigfn_t func)
>> To catch the signal
>> With a handler signature of:
>> enum void function(int) nothrow @nogc @system SIG_ERR;
>>
>> [...]
>
> Yes, i'm using signal(SIGSEGV, sigfn_t func), it catches 
> correctly, but end the execution after.
>
> I find the alternatives of setjmp/longjmp and sigaction, but 
> none are avaliable on windows afaik.

Aah ok. I think signal() and sigaction() are equivalent. Don't 
know about setjmp/longjmp not being available on D-windows. They 
are defined in core.sys.posix, so not directly available on 
windows per definition. They might be available under mingw.

If you think this is an oversight (as they are part of libc in 
general) and see a definite need, it should not be too hard to 
add them, i would think. You would have to ask someone with 
knowledge and access to windows to help you out though (A 
druntime PR would be welcome).


More information about the Digitalmars-d-learn mailing list