Skip to contentSkip to conversation

man2/clone.2: clarify that CLONE_CLEAR_SIGHAND does not affect SIG_IGN

PATCH Superseded Max Kellermann 2 participants 6 messages Oct 30, 2023 – Oct 31, 2023 Man-pages: manual pages for Linux -- Sections 2, 3, 4, 5, and 7

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 man2/clone.2: clarify that CLONE_CLEAR_SIGHAND does not affect SIG_IGN

The old wording was ambiguous, but it is important to know that signals that were set to SIG_IGN will not be restored to SIG_DFL.

---
 man2/clone.2 | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
man2/clone.2 +2 -1
index 4a75b557b..deb4bdb5b 100644
@@ -455,7 +455,8 @@ flag is also employed.)
 By default, signal dispositions in the child thread are the same as
 in the parent.
 If this flag is specified,
-then all signals that are handled in the parent
+then all signals that are handled in the parent (and not set to
+.BR SIG_IGN )
 are reset to their default dispositions
 .RB ( SIG_DFL )
 in the child.
Signature · 1 line
2.39.2
#1 lore raw

Hello Max,

Quoted 4 lines · Max Kellermann

The old wording was ambiguous, but it is important to know that signals that were set to SIG_IGN will not be restored to SIG_DFL.

Would you mind sending an example program that proves this?

Thanks,
Alex

Quoted 21 lines
---
 man2/clone.2 | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
man2/clone.2 +2 -1
index 4a75b557b..deb4bdb5b 100644
@@ -455,7 +455,8 @@ flag is also employed.)
 By default, signal dispositions in the child thread are the same as
 in the parent.
 If this flag is specified,
-then all signals that are handled in the parent
+then all signals that are handled in the parent (and not set to
+.BR SIG_IGN )
 are reset to their default dispositions
 .RB ( SIG_DFL )
 in the child.
Signature · 1 line
2.39.2
Signature · 1 line
<https://www.alejandro-colomar.es/>
#3 lore raw

Hi Max,

Quoted 6 lines · Max Kellermann
Quoted 1 line · Alejandro Colomar

Would you mind sending an example program that proves this?

If you need proof, all you need to do is look at the commit adding the feature (or the code comments it added which are still there):
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b612e5df4587c934bd056bf05f4a1deca4de4f75

Thanks, that also works. That commit message is very explicit in this regard. When reviewing a patch, it helps if that kind of information is included in the commit message (and it also helps review old patches in the future, not just when applying it). It's covered in ./CONTRIBUTING:

- Describe how you obtained the information in your patch. For example, was it:

- by reading (or writing) the relevant kernel or (g)libc source code? Please provide a pointer to the following code.

- from a commit message in the kernel or (g)libc source code repository? Please provide a commit ID.

- by writing a test program? Send it with the patch, but please make sure it's as simple as possible, and provide instructions on how to use it and/or a demo run.

- from a standards document? Please name the standard, and quote the relevant text.

- from other documentation? Please provide a pointer to that documentation.

- from a mailing list or online forum? Please provide a URL if possible.

Cheers,
Alex

Signature · 1 line
<https://www.alejandro-colomar.es/>
#4 lore raw

PATCH v2 1/1 man2/clone.2: clarify that CLONE_CLEAR_SIGHAND does not affect SIG_IGN

The old wording was ambiguous, but it is important to know that signals that were set to SIG_IGN will not be restored to SIG_DFL.

This behavior was documented in the kernel commit that introduced the feature:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b612e5df4587c934bd056bf05f4a1deca4de4f75

---
v1 -> v2: added link to kernel commit

---
 man2/clone.2 | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
man2/clone.2 +2 -1
index 4a75b557b..deb4bdb5b 100644
@@ -455,7 +455,8 @@ flag is also employed.)
 By default, signal dispositions in the child thread are the same as
 in the parent.
 If this flag is specified,
-then all signals that are handled in the parent
+then all signals that are handled in the parent (and not set to
+.BR SIG_IGN )
 are reset to their default dispositions
 .RB ( SIG_DFL )
 in the child.
Signature · 1 line
2.39.2
#5 lore raw

Hi Max,

Quoted 9 lines · Max Kellermann

The old wording was ambiguous, but it is important to know that signals that were set to SIG_IGN will not be restored to SIG_DFL.

This behavior was documented in the kernel commit that introduced the feature:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b612e5df4587c934bd056bf05f4a1deca4de4f75

Patch applied slightly amended). Thanks!
<https://www.alejandro-colomar.es/src/alx/linux/man-pages/man-pages.git/commit/?h=contrib&id=05e46589ceb7e3ca5925c874adb489e0dde40596>

Cheers,
Alex

Quoted 23 lines

---
v1 -> v2: added link to kernel commit

---
 man2/clone.2 | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
man2/clone.2 +2 -1
index 4a75b557b..deb4bdb5b 100644
@@ -455,7 +455,8 @@ flag is also employed.)
 By default, signal dispositions in the child thread are the same as
 in the parent.
 If this flag is specified,
-then all signals that are handled in the parent
+then all signals that are handled in the parent (and not set to
+.BR SIG_IGN )
 are reset to their default dispositions
 .RB ( SIG_DFL )
 in the child.
Signature · 1 line
2.39.2
Signature · 1 line
<https://www.alejandro-colomar.es/>