Node:Atomic Types, Next:Atomic Usage, Previous:Non-atomic Example, Up:Atomic Data Access
To avoid uncertainty about interrupting access to a variable, you can
use a particular data type for which access is always atomic:
sig_atomic_t
. Reading and writing this data type is guaranteed
to happen in a single instruction, so there's no way for a handler to
run "in the middle" of an access.
The type sig_atomic_t
is always an integer data type, but which
one it is, and how many bits it contains, may vary from machine to
machine.
sig_atomic_t | Data Type |
This is an integer data type. Objects of this type are always accessed atomically. |
In practice, you can assume that int
and other integer types no
longer than int
are atomic. You can also assume that pointer
types are atomic; that is very convenient. Both of these assumptions
are true on all of the machines that the GNU C library supports and on
all POSIX systems we know of.