summaryrefslogtreecommitdiff
path: root/util.h%2525252525252525252525252525252525252525252525252525252525252525252525...
diff options
context:
space:
mode:
authorChris Down <chris@chrisdown.name>2023-01-28 12:53:48 +0100
committerHiltjo Posthuma <hiltjo@codemadness.org>2023-01-28 13:34:43 +0100
commit712d6639ff8e863560328131bbb92b248dc9cde7 (patch)
treec563872871c1e3e947d40caae45614498140e8dd /util.h%25252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525253d14343e69cc596b847f71f1e825d3019ab1a29aa8%252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525253d35db6d8afc3fd9f80166feac6c1e4adf71d553c3%2525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525253d3d1090ba896319368c4771b88d325fcee368a608%25252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525253d18248ebf4b9465b837e717dcd14a5202a98248e0%252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525253d18248ebf4b9465b837e717dcd14a5202a98248e0%2525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525253d18248ebf4b9465b837e717dcd14a5202a98248e0%25252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525253db468873b2b71d351ed7b5a4c75f62060999c46eb%252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525253db468873b2b71d351ed7b5a4c75f62060999c46eb%2525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525253db468873b2b71d351ed7b5a4c75f62060999c46eb&id2%2525252525252525252525252525252525252525252525252525252525252525253dcdec9782a1789bd5c3a84772fd59abb9da288597%25252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525253db468873b2b71d351ed7b5a4c75f62060999c46eb%252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525253db468873b2b71d351ed7b5a4c75f62060999c46eb&id2%252525252525252525252525252525252525252525252525252525252525253dcdec9782a1789bd5c3a84772fd59abb9da288597%252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%2525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%25252525252525252525252525252525252525253fid%25252525252525252525252525252525252525253d348f6559ab0d4793db196ffa56ba96ab95a594a6%25252525252525252525252525252525253fid%25252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%252525252525252525252525252525253fid%252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%2525252525252525252525252525253fid%2525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%25252525252525252525252525253fid%25252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525253fid%252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525253fid%2525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525253fid%25252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525253fid%252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%2525252525252525253fid%2525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525253fid%25252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525253fid%252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525253fid%2525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%25252525253fid%25252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%252525253fid%252525253d348f6559ab0d4793db196ffa56ba96ab95a594a6%2525253fid%2525253d712d6639ff8e863560328131bbb92b248dc9cde7%25253fid%25253d712d6639ff8e863560328131bbb92b248dc9cde7&id2%25253d89f9905714c1c1b2e8b09986dfbeca15b68d8af8%253fid%253d712d6639ff8e863560328131bbb92b248dc9cde7%3fid%3d712d6639ff8e863560328131bbb92b248dc9cde7?id=712d6639ff8e863560328131bbb92b248dc9cde7
parent89f9905714c1c1b2e8b09986dfbeca15b68d8af8 (diff)
Use sigaction(SA_NOCLDWAIT) for SIGCHLD handling
signal() semantics are pretty unclearly specified. For example, depending on OS kernel and libc, the handler may be returned to SIG_DFL (hence the inner call to read the signal handler). Moving to sigaction() means the behaviour is consistently defined. Using SA_NOCLDWAIT also allows us to avoid calling the non-reentrant function die() in the handler. Some addditional notes for archival purposes: * NRK pointed out errno of waitpid could also theoretically get clobbered. * The original patch was iterated on and modified by NRK and Hiltjo: * SIG_DFL was changed to SIG_IGN, this is required, atleast on older systems such as tested on Slackware 11. * signals are not blocked using sigprocmask, because in theory it would briefly for example also ignore a SIGTERM signal. It is OK if waitpid() is (in theory interrupted). POSIX reference: "Consequences of Process Termination": https://pubs.opengroup.org/onlinepubs/9699919799/functions/_Exit.html#tag_16_01_03_01
Diffstat (limited to 'util.h%25252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525252525253d14343e69cc596b847f71f1e825d3019ab1a29aa8%252525252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525252525253d35db6d8afc3fd9f80166feac6c1e4adf71d553c3%2525252525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525252525253d3d1090ba896319368c4771b88d325fcee368a608%25252525252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525252525253d18248ebf4b9465b837e717dcd14a5202a98248e0%252525252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525252525253d18248ebf4b9465b837e717dcd14a5202a98248e0%2525252525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525252525253d18248ebf4b9465b837e717dcd14a5202a98248e0%25252525252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525252525253db468873b2b71d351ed7b5a4c75f62060999c46eb%252525252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525252525253db468873b2b71d351ed7b5a4c75f62060999c46eb%2525252525252525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525252525252525253db468873b2b71d351ed7b5a4c75f62060999c46eb&id2%2525252525252525252525252525252525252525252525252525252525252525253dcdec9782a1789bd5c3a84772fd59abb9da288597%25252525252525252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525252525252525253db468873b2b71d351ed7b5a4c75f62060999c46eb%252525252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525252525253db468873b2b71d351ed7b5a4c75f62060999c46eb&id2%252525252525252525252525252525252525252525252525252525252525253dcdec9782a1789bd5c3a84772fd59abb9da288597%252525252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525252525252525252525252525252525253fid%25252525252525252525252525252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525252525252525252525252525253fid%252525252525252525252525252525252525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%2525252525252525252525252525252525252525253fid%2525252525252525252525252525252525252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%25252525252525252525252525252525252525253fid%25252525252525252525252525252525252525253d348f6559ab0d4793db196ffa56ba96ab95a594a6%25252525252525252525252525252525253fid%25252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%252525252525252525252525252525253fid%252525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%2525252525252525252525252525253fid%2525252525252525252525252525253d0b4da825b86ccd41e86208f5a5e8ff1ae2bde52a%25252525252525252525252525253fid%25252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%252525252525252525252525253fid%252525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%2525252525252525252525253fid%2525252525252525252525253da5ef81cd3600306c4b2af8a5dad69fab4d6cad17%25252525252525252525253fid%25252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525252525253fid%252525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2&id2%252525252525252525253d9f8855343c881bdc01b9fff5b956537ba1106b76%2525252525252525253fid%2525252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%25252525252525253fid%25252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%252525252525253fid%252525252525253d271e1a5f3445e8ab70255fcf9b1da8c233efa1d2%2525252525253fid%2525252525253df81ac905a0940e0779fe5207e5eec4ac42956b98%25252525253fid%25252525253de81f17d4c196aaed6893fd4beed49991caa3e2a4%252525253fid%252525253d348f6559ab0d4793db196ffa56ba96ab95a594a6%2525253fid%2525253d712d6639ff8e863560328131bbb92b248dc9cde7%25253fid%25253d712d6639ff8e863560328131bbb92b248dc9cde7&id2%25253d89f9905714c1c1b2e8b09986dfbeca15b68d8af8%253fid%253d712d6639ff8e863560328131bbb92b248dc9cde7%3fid%3d712d6639ff8e863560328131bbb92b248dc9cde7?id=712d6639ff8e863560328131bbb92b248dc9cde7')
0 files changed, 0 insertions, 0 deletions