summaryrefslogtreecommitdiffhomepage
path: root/src/Xmobar/Plugins
diff options
context:
space:
mode:
authorUlrik de Muelenaere <ulrikdem@gmail.com>2024-03-29 22:03:21 -0400
committerUlrik de Muelenaere <ulrikdem@gmail.com>2024-03-30 10:51:24 -0400
commitcbf92262721879286a85d35dc528ae941f706450 (patch)
treeab831c4139eca1a1debe930de3adb9ede8b2aacb /src/Xmobar/Plugins
parent9349871b9eb888d1d1b7f552ea40f8d348b16c1b (diff)
downloadxmobar-cbf92262721879286a85d35dc528ae941f706450.tar.gz
xmobar-cbf92262721879286a85d35dc528ae941f706450.tar.bz2
Fix waitForProcess errors when configuration is recompiled
Previously, xmobar would ignore SIGCHLD, but only when the configuration is recompiled. This means child processes would not leave zombies, so that waiting for them to exit (either directly by calling waitForProcess, or indirectly through another function from System.Process, like system or readProcessWithExitCode) would produce an error. This breaks the Alsa, Com (#657) and NotmuchMail plugins, as well as the <action> tag (#687) and low battery action (#688). As far as I can tell, bracketing the recompilation in uninstallSignalHandlers and installSignalHandlers was inherited from xmonad. In xmonad, SIGPIPE and SIGCHLD are always ignored (installSignalHandlers is called at the start of xmonad and launch), so the bracket is necessary to be able to wait for the compiler or build script to exit. Since xmobar does not otherwise ignore the signals, it is not necessary to change signal handlers at all during recompilation. Removing it leaves the default action for SIGCHLD, which fixes the issues described above. Fixes #657, #687 and #688.
Diffstat (limited to 'src/Xmobar/Plugins')
0 files changed, 0 insertions, 0 deletions