pipewire/pipewire-jack
Wim Taymans b0ce5d0dd8 jack: don't call free_link from the data thread
We are not allowed to call free_link from the data thread because it
does free() and some pw_mem calls which should only be called from the
main thread.

To solve this, pause the core, queue a free_link operation on the data
thread, which will be scheduled after the previous remove_link operation
completes, free the link and then resume the core. Blocking and resuming
the core is necessary because we can't block for completion of the
invoke calls (the jack method is not allowed to block) and we must
ensure that nothing can happen with the memory (like reuse the mem_id)
before we have cleaned it up.

Fixes a crash in jack with create/destroy link stress.
2024-06-11 17:17:32 +02:00
..
examples treewide: use SPDX tags to specify copyright information 2023-02-16 10:54:48 +00:00
jack Update FSF address 2023-08-07 09:36:59 +00:00
src jack: don't call free_link from the data thread 2024-06-11 17:17:32 +02:00
meson.build [Meson] Change jack-devel option to be boolean 2021-08-06 07:56:16 +00:00