[Rd] Catch SIGINT from user in backend C++ code
C.P.Jewell at massey.ac.nz
Thu May 2 01:50:41 CEST 2013
I was wondering if anybody knew how to trap SIGINTs (ie Ctrl-C) in backend C++ code for R extensions? I'm writing a package that uses the GPU for some hefty matrix operations in a tightly coupled parallel algorithm implemented in CUDA.
The problem is that once running, the C++ module cannot apparently be interrupted by a SIGINT, leaving the user sat waiting even if they realise they've launched the algorithm with incorrect settings. Occasionally, the SIGINT gets through and the C++ module stops. However, this leaves the CUDA context hanging, meaning that if the algorithm is launched again R dies. If I could trap the SIGINT, then I could make sure a) that the algorithm stops immediately, and b) that the CUDA context is destructed nicely.
Is there a "R-standard" method of doing this?
Dr Chris Jewell
Lecturer in Biostatistics
Institute of Fundamental Sciences
Private Bag 11222
Palmerston North 4442
Tel: +64 (0) 6 350 5701 Extn: 3586
More information about the R-devel