mirror of https://github.com/nirenjan/libx52.git
Block signals on child threads
This change adds logic to block signals on child threads. This is done so that we can migrate signal handling to the main thread, even if we add additional threads in the future.cpp
parent
b0f9006594
commit
d3d32cf278
|
@ -73,7 +73,7 @@ static void listen_signal(int signum, void (*handler)(int))
|
|||
|
||||
action.sa_handler = handler;
|
||||
sigemptyset(&action.sa_mask);
|
||||
action.sa_flags = 0;
|
||||
action.sa_flags = SA_RESTART;
|
||||
|
||||
rc = sigaction(signum, &action, NULL);
|
||||
if (rc < 0) {
|
||||
|
@ -261,6 +261,8 @@ int main(int argc, char **argv)
|
|||
const char *command_sock = NULL;
|
||||
int opt;
|
||||
int command_sock_fd;
|
||||
int rc;
|
||||
sigset_t sigblockset;
|
||||
|
||||
/* Initialize gettext */
|
||||
#if ENABLE_NLS
|
||||
|
@ -353,6 +355,14 @@ int main(int argc, char **argv)
|
|||
set_log_file(foreground, log_file);
|
||||
x52d_config_load(conf_file);
|
||||
|
||||
// Disable pthread signals
|
||||
sigfillset(&sigblockset);
|
||||
rc = pthread_sigmask(SIG_BLOCK, &sigblockset, NULL);
|
||||
if (rc != 0) {
|
||||
PINELOG_FATAL(_("Error %d blocking signals on child threads: %s"),
|
||||
errno, strerror(errno));
|
||||
}
|
||||
|
||||
// Start device threads
|
||||
x52d_dev_init();
|
||||
x52d_clock_init();
|
||||
|
@ -362,6 +372,13 @@ int main(int argc, char **argv)
|
|||
x52d_mouse_evdev_init();
|
||||
#endif
|
||||
|
||||
// Re-enable signals
|
||||
rc = pthread_sigmask(SIG_UNBLOCK, &sigblockset, NULL);
|
||||
if (rc != 0) {
|
||||
PINELOG_FATAL(_("Error %d unblocking signals on child threads: %s"),
|
||||
errno, strerror(errno));
|
||||
}
|
||||
|
||||
command_sock_fd = listen_command(command_sock);
|
||||
if (command_sock_fd < 0) {
|
||||
goto cleanup;
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: libx52 0.2.3\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/nirenjan/libx52/issues\n"
|
||||
"POT-Creation-Date: 2022-06-05 08:22-0700\n"
|
||||
"POT-Creation-Date: 2022-07-27 11:30-0700\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -542,68 +542,78 @@ msgstr ""
|
|||
msgid "Error listening on command socket: %s"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:315
|
||||
#: daemon/x52d_main.c:317
|
||||
#, c-format
|
||||
msgid "Unable to parse configuration override '%s'\n"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:343
|
||||
#: daemon/x52d_main.c:345
|
||||
#, c-format
|
||||
msgid "Foreground = %s"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:343 daemon/x52d_main.c:344
|
||||
#: daemon/x52d_main.c:345 daemon/x52d_main.c:346
|
||||
msgid "true"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:343 daemon/x52d_main.c:344
|
||||
#: daemon/x52d_main.c:345 daemon/x52d_main.c:346
|
||||
msgid "false"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:344
|
||||
#, c-format
|
||||
msgid "Quiet = %s"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:345
|
||||
#, c-format
|
||||
msgid "Verbosity = %d"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:346
|
||||
#, c-format
|
||||
msgid "Log file = %s"
|
||||
msgid "Quiet = %s"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:347
|
||||
#, c-format
|
||||
msgid "Config file = %s"
|
||||
msgid "Verbosity = %d"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:348
|
||||
#, c-format
|
||||
msgid "PID file = %s"
|
||||
msgid "Log file = %s"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:349
|
||||
#, c-format
|
||||
msgid "Config file = %s"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:350
|
||||
#, c-format
|
||||
msgid "PID file = %s"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:351
|
||||
#, c-format
|
||||
msgid "Command socket = %s"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:379
|
||||
#: daemon/x52d_main.c:362
|
||||
#, c-format
|
||||
msgid "Error %d blocking signals on child threads: %s"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:378
|
||||
#, c-format
|
||||
msgid "Error %d unblocking signals on child threads: %s"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:396
|
||||
msgid "Reloading X52 configuration"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:386
|
||||
#: daemon/x52d_main.c:403
|
||||
msgid "Saving X52 configuration to disk"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:392
|
||||
#: daemon/x52d_main.c:409
|
||||
#, c-format
|
||||
msgid "Received termination signal %s"
|
||||
msgstr ""
|
||||
|
||||
#: daemon/x52d_main.c:415
|
||||
#: daemon/x52d_main.c:432
|
||||
msgid "Shutting down X52 daemon"
|
||||
msgstr ""
|
||||
|
||||
|
|
42
po/xx_PL.po
42
po/xx_PL.po
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: libx52 0.2.3\n"
|
||||
"Report-Msgid-Bugs-To: https://github.com/nirenjan/libx52/issues\n"
|
||||
"POT-Creation-Date: 2022-06-05 08:22-0700\n"
|
||||
"PO-Revision-Date: 2022-06-05 08:51-0700\n"
|
||||
"POT-Creation-Date: 2022-07-27 11:30-0700\n"
|
||||
"PO-Revision-Date: 2022-07-27 11:32-0700\n"
|
||||
"Last-Translator: Nirenjan Krishnan <nirenjan@gmail.com>\n"
|
||||
"Language-Team: Dummy Language for testing i18n\n"
|
||||
"Language: xx_PL\n"
|
||||
|
@ -589,68 +589,78 @@ msgstr "Erroray indingbay otay ommandcay ocketsay: %s"
|
|||
msgid "Error listening on command socket: %s"
|
||||
msgstr "Erroray isteninglay onay ommandcay ocketsay: %s"
|
||||
|
||||
#: daemon/x52d_main.c:315
|
||||
#: daemon/x52d_main.c:317
|
||||
#, c-format
|
||||
msgid "Unable to parse configuration override '%s'\n"
|
||||
msgstr "Unableay otay arsepay onfigurationcay overrideay '%s'\n"
|
||||
|
||||
#: daemon/x52d_main.c:343
|
||||
#: daemon/x52d_main.c:345
|
||||
#, c-format
|
||||
msgid "Foreground = %s"
|
||||
msgstr "Oregroundfay = %s"
|
||||
|
||||
#: daemon/x52d_main.c:343 daemon/x52d_main.c:344
|
||||
#: daemon/x52d_main.c:345 daemon/x52d_main.c:346
|
||||
msgid "true"
|
||||
msgstr "uetray"
|
||||
|
||||
#: daemon/x52d_main.c:343 daemon/x52d_main.c:344
|
||||
#: daemon/x52d_main.c:345 daemon/x52d_main.c:346
|
||||
msgid "false"
|
||||
msgstr "alsefay"
|
||||
|
||||
#: daemon/x52d_main.c:344
|
||||
#: daemon/x52d_main.c:346
|
||||
#, c-format
|
||||
msgid "Quiet = %s"
|
||||
msgstr "Uietqay = %s"
|
||||
|
||||
#: daemon/x52d_main.c:345
|
||||
#: daemon/x52d_main.c:347
|
||||
#, c-format
|
||||
msgid "Verbosity = %d"
|
||||
msgstr "Erbosityvay = %d"
|
||||
|
||||
#: daemon/x52d_main.c:346
|
||||
#: daemon/x52d_main.c:348
|
||||
#, c-format
|
||||
msgid "Log file = %s"
|
||||
msgstr "Oglay ilefay = %s"
|
||||
|
||||
#: daemon/x52d_main.c:347
|
||||
#: daemon/x52d_main.c:349
|
||||
#, c-format
|
||||
msgid "Config file = %s"
|
||||
msgstr "Onfigcay ilefay = %s"
|
||||
|
||||
#: daemon/x52d_main.c:348
|
||||
#: daemon/x52d_main.c:350
|
||||
#, c-format
|
||||
msgid "PID file = %s"
|
||||
msgstr "IDPay ilefay = %s"
|
||||
|
||||
#: daemon/x52d_main.c:349
|
||||
#: daemon/x52d_main.c:351
|
||||
#, c-format
|
||||
msgid "Command socket = %s"
|
||||
msgstr "Ommandcay ocketsay = %s"
|
||||
|
||||
#: daemon/x52d_main.c:379
|
||||
#: daemon/x52d_main.c:362
|
||||
#, c-format
|
||||
msgid "Error %d blocking signals on child threads: %s"
|
||||
msgstr "Erroray %d ockingblay ignalssay onay ildchay eadsthray: %s"
|
||||
|
||||
#: daemon/x52d_main.c:378
|
||||
#, c-format
|
||||
msgid "Error %d unblocking signals on child threads: %s"
|
||||
msgstr "Erroray %d unblockingay ignalssay onay ildchay eadsthray: %s"
|
||||
|
||||
#: daemon/x52d_main.c:396
|
||||
msgid "Reloading X52 configuration"
|
||||
msgstr "Eloadingray X52 onfigurationcay"
|
||||
|
||||
#: daemon/x52d_main.c:386
|
||||
#: daemon/x52d_main.c:403
|
||||
msgid "Saving X52 configuration to disk"
|
||||
msgstr "Avingsay X52 onfigurationcay otay iskday"
|
||||
|
||||
#: daemon/x52d_main.c:392
|
||||
#: daemon/x52d_main.c:409
|
||||
#, c-format
|
||||
msgid "Received termination signal %s"
|
||||
msgstr "Eceivedray erminationtay ignalsay %s"
|
||||
|
||||
#: daemon/x52d_main.c:415
|
||||
#: daemon/x52d_main.c:432
|
||||
msgid "Shutting down X52 daemon"
|
||||
msgstr "Uttingshay ownday X52 aemonday"
|
||||
|
||||
|
|
Loading…
Reference in New Issue