From ripley at stats.ox.ac.uk  Sun Nov 18 15:17:10 2012
From: ripley at stats.ox.ac.uk (Prof Brian Ripley)
Date: Sun, 18 Nov 2012 14:17:10 +0000
Subject: [Rd] Sighandlers
In-Reply-To: <CAMrz3D0MNwuiYRiqGWOh8AAT6rcdAbppi9BDZ9EvqqDiSdQ8_Q@mail.gmail.com>
References: <CAMrz3D0MNwuiYRiqGWOh8AAT6rcdAbppi9BDZ9EvqqDiSdQ8_Q@mail.gmail.com>
Message-ID: <50A8EDE6.7080005@stats.ox.ac.uk>

R has its own signal handlers, including for SIGINT.

What is your 'extension'?   If it is a program embedding R, the order of 
setting signal handlers will matter, and in any case R's handler if ever 
called it will reset the handler to itself.

If it is a package, it should not be messing with the process into which 
it is loaded.

On 17/11/2012 15:56, Ulrich Staudinger wrote:
> Hello everyone,
>
> I am searching and searching and can't find an answer.

Did you search the source code?

>
> I try to register a sighandler in my extension's C code. But my
> sighandler is never called. Is there anything preventing extensions to
> receive signals?
>
> I register like this:
>
> [.. some code that works ..]
>        // register the sigint listeners.
>        if (signal(SIGTERM, killReceiver) == SIG_ERR) {
>          printf("2 An error occurred while setting a signal
> handler.%s\n", stderr);
>        }
>        if (signal(SIGHUP, killReceiver) == SIG_ERR) {
>          printf("3 An error occurred while setting a signal
> handler.%s\n", stderr);
>        }
>        if (signal(SIGINT, killReceiver) == SIG_ERR) {
>          printf("4 An error occurred while setting a signal
> handler.%s\n", stderr);
>        }
> [.. even more code that works ..]
>
>
> handler code:
>
> static void killReceiver(int signum){
>    printf("Cleaning up\n");
> }
>
>
> When I exit R, my signal handler is not being called. Am I listening
> to the right signals? Do I have some misunderstanding on my side?
>
> Funny side story, if I manually raise(SIGINT), my handlers gets called.
>
>
> Thanks for some light on this,
>
> Ulrich
>
>
>
>
>
> --
> Ulrich Staudinger
>
> P: +41 79 702 05 95
> E: ustaudinger at activequant.com
>
> http://www.activequant.com
> Connect online: https://www.xing.com/profile/Ulrich_Staudinger
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>


-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



[Rd] Sighandlers
Prof Brian Ripley