Skip to content

Commit 3a1f69c

Browse files
committed
Cleanup: signal_handler: Replace define by function
1 parent 2372a51 commit 3a1f69c

1 file changed

Lines changed: 14 additions & 11 deletions

File tree

src/rtapi/uspace_rtapi_main.cc

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -663,50 +663,53 @@ struct rtapi_module {
663663
#define MAX_MODULES 64
664664
#define MODULE_OFFSET 32768
665665

666-
#define WRITE_STDERR_STR(str) ((void)!write(STDERR_FILENO, str, strlen(str)))
666+
static inline void write_string(int fd, const char *str) {
667+
(void)!write(fd, str, strlen(str));
668+
}
669+
667670
static void signal_handler(int sig, siginfo_t * /*si*/, void * /*uctx*/) {
668671
//Read: https://www.man7.org/linux/man-pages/man7/signal-safety.7.html
669672
bool doAbort = true;
670673
switch (sig) {
671674
case SIGXCPU:
672-
WRITE_STDERR_STR("rtapi_app: SIGXCPU - aborting\n");
675+
write_string(STDERR_FILENO, "rtapi_app: SIGXCPU - aborting\n");
673676
break;
674677
case SIGSEGV:
675-
WRITE_STDERR_STR("rtapi_app: SIGSEGV - aborting\n");
678+
write_string(STDERR_FILENO, "rtapi_app: SIGSEGV - aborting\n");
676679
break;
677680
case SIGILL:
678-
WRITE_STDERR_STR("rtapi_app: SIGILL - aborting\n");
681+
write_string(STDERR_FILENO, "rtapi_app: SIGILL - aborting\n");
679682
break;
680683
case SIGFPE:
681-
WRITE_STDERR_STR("rtapi_app: SIGFPE - aborting\n");
684+
write_string(STDERR_FILENO, "rtapi_app: SIGFPE - aborting\n");
682685
break;
683686
case SIGTERM:
684-
WRITE_STDERR_STR("rtapi_app: SIGTERM - shutting down\n");
687+
write_string(STDERR_FILENO, "rtapi_app: SIGTERM - shutting down\n");
685688
doAbort = false; //TERM is a user signal, no need for a coredump
686689
break;
687690
case SIGINT:
688-
WRITE_STDERR_STR("rtapi_app: SIGINT - shutting down\n");
691+
write_string(STDERR_FILENO, "rtapi_app: SIGINT - shutting down\n");
689692
doAbort = false; //INT is a user signal, no need for a coredump
690693
break;
691694
default:
692-
WRITE_STDERR_STR("rtapi_app: UNKNOWN - aborting\n");
695+
write_string(STDERR_FILENO, "rtapi_app: UNKNOWN - aborting\n");
693696
break;
694697
}
695698

696699
//Write remaining messages
697700
rtapi_msg_queue.consume_all([](const message_t &m) {
698-
WRITE_STDERR_STR(m.msg);
701+
write_string(STDERR_FILENO, m.msg);
699702
});
700703

701-
if(doAbort){
704+
if (doAbort) {
702705
//Call abort to generate a coredump if enabled
703706
//To enable coredumps for setuid applications:
704707
//echo 1 | sudo tee /proc/sys/fs/suid_dumpable #rtapi_app is setuid
705708
//In general:
706709
//ulimit -c unlimited or coredumpctl
707710
abort();
708711
}
709-
_exit(128+sig); //128+n: Fatal error signal "n"
712+
_exit(128 + sig); //128+n: Fatal error signal "n"
710713
}
711714

712715
const static size_t PRE_ALLOC_SIZE = 1024 * 1024 * 32;

0 commit comments

Comments
 (0)