ctrl+c and destructors

Paulo Pinto pjmlp at progtools.org
Tue Oct 1 16:32:38 PDT 2013


Am 01.10.2013 22:16, schrieb Maxim Fomin:
> On Tuesday, 1 October 2013 at 19:55:17 UTC, monarch_dodra wrote:
>> On Tuesday, 1 October 2013 at 03:58:04 UTC, Nick Sabalausky wrote:
>>> You know, this sounds like something that really should fall squarely in
>>> the category of "do the right thing by default". Is there any reason
>>> druntime can't be made to handle this better by default?
>>
>> Well, arguably, a segfault is a catastrophic error, even more serious
>> than an assert.
>
> In linux assert(0) causes a segfault. And the fact that detected by OS
> memory error is sigfault at linux and exception on windows really hurts
> portability.
>
>> I'm not sure what "the right thing" would even be, apart from dying
>> right there and then...?
>>
>> Even just throwing an error could be problematic (AFAIK).
>
> Druntime can catch SIGINT and throw the exception. This means that D
> runtime can be easily broken by silly C code which uses its own signal
> handlers. I didn't tested, but believe this is already the case with
> respect to SIGUSR1 and SIGUSR2 which are used by druntime, so any simple
> code hijacking the signals can break runtime. Linux signals handlers as
> error mechanism is a complete disaster.

s/Linux/UNIX/g


More information about the Digitalmars-d mailing list