[PATCH] signal handlers: volatile sigatomic_t, not volatile OR sigatomic_t

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Variables shared with signal handlers must be of type `volatile
sigatomic_t`, not `volatile` or `sigatomic_t` as the current text says,
according to a C11 draft:

    When ... interrupted by ... a signal, values of objects that are
    neither lock-free atomic objects nor of type volatile sig_atomic_t
    are unspecified.

Ref: https://www.iso-9899.info/n1570.html#5.1.2.3p5
Signed-off-by: Guilherme Janczak <guilherme.janczak@xxxxxxxxxx>
---
 memorder/memorder.tex | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/memorder/memorder.tex b/memorder/memorder.tex
index 5c50d42d..873c3424 100644
--- a/memorder/memorder.tex
+++ b/memorder/memorder.tex
@@ -1317,8 +1317,8 @@ from the viewpoint of the interrupted thread, at least at the
 assembly-language level.
 However, the C and C++ languages do not define the results of handlers
 and interrupted threads sharing plain variables.
-Instead, such shared variables must be \co{sig_atomic_t}, lock-free
-atomics, or \co{volatile}.
+Instead, such shared variables must be \co{volatile sig_atomic_t} or
+lock-free atomics.
 
 On the other hand, because the handler executes within the interrupted
 thread's context, the memory ordering used to synchronize communication
-- 
2.42.0





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux