pipewire/spa/include/spa/utils
Demi Marie Obenour bac3d31283 pod: fix some data races in body code
The body code didn't use atomic loads, so it had undefined behavior if
the body was concurrently modified.  Use atomic loads to fix this.
Since the memory order is __ATOMIC_RELAXED this has no runtime overhead.
Also add barriers around a strncpy call and cast to volatile before
checking for a NUL terminator, though NUL-terminated strings in shared
memory are unuseable.  There are some places where bytewise atomic
memcpy(), which doesn't currently exist, is needed.  Instead, try to
fake it by using two barriers around memcpy().
2025-08-05 10:49:33 -04:00
..
ansi.h treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
atomic.h pod: fix some data races in body code 2025-08-05 10:49:33 -04:00
cleanup.h spa: utils: explicitly preserve errno in spa_cleanup handlers 2024-07-04 20:57:51 +00:00
defs.h pod: add barrier around memcpy 2025-07-30 18:10:09 +02:00
dict.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
dll.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
endian.h Add spa/utils/endian.h 2024-07-01 15:28:58 +00:00
enum-types.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
hook.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
json-core.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
json-pod.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
json.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
keys.h spa: acp: remove some strictly not necessary SplitPCM properties 2024-12-23 11:46:02 +02:00
list.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
names.h videoconvert: Add dummy plugin 2024-08-29 14:00:51 +00:00
ratelimit.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
result.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
ringbuffer.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
string.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
type-info.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
type.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00