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