pipewire/spa/include/spa/pod
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
..
body.h pod: fix some data races in body code 2025-08-05 10:49:33 -04:00
builder.h pod: add support for vararg building and parsing of pod+body 2025-07-30 15:14:49 +02:00
command.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
compare.h pod: improve compare function 2025-07-22 14:19:08 +02:00
dynamic.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
event.h *: don't include standard C headers inside of extern "C" 2025-05-30 09:48:28 +01:00
filter.h pod: do size check before calling type/size/data functions 2025-07-22 13:14:17 +02:00
iter.h Revert "pod: remove checks from spa_pod_body_get_*()" 2025-08-01 10:46:45 +02:00
parser.h pod: fuse can_collect, SKIP and COLLECT 2025-08-01 16:23:37 +02:00
pod.h pod: rework the parser 2025-07-29 15:15:02 +02:00
simplify.h pod: check that choices are not empty 2025-07-15 10:13:18 +02:00
vararg.h pod: add support for vararg building and parsing of pod+body 2025-07-30 15:14:49 +02:00