{"object_kind":"push","event_name":"push","before":"216c86f4e4eecda8d56dd05623bb3226fdd8b775","after":"1db58b341f582ca7c9c293810196a75b431bd5bd","ref":"refs/heads/master","ref_protected":true,"checkout_sha":"1db58b341f582ca7c9c293810196a75b431bd5bd","message":null,"user_id":5223,"user_name":"Julian Bouzas","user_username":"julian","user_email":"julian.bouzas@collabora.com","user_avatar":"https://gitlab.freedesktop.org/uploads/-/system/user/avatar/5223/avatar.png?v=1790681254","project_id":2941,"project":{"id":2941,"name":"wireplumber","description":"Session / policy manager implementation for PipeWire","web_url":"https://gitlab.freedesktop.org/pipewire/wireplumber","avatar_url":null,"git_ssh_url":"git@ssh.gitlab.freedesktop.org:pipewire/wireplumber.git","git_http_url":"https://gitlab.freedesktop.org/pipewire/wireplumber.git","namespace":"PipeWire","visibility_level":20,"path_with_namespace":"pipewire/wireplumber","default_branch":"master","ci_config_path":"","homepage":"https://gitlab.freedesktop.org/pipewire/wireplumber","url":"git@ssh.gitlab.freedesktop.org:pipewire/wireplumber.git","ssh_url":"git@ssh.gitlab.freedesktop.org:pipewire/wireplumber.git","http_url":"https://gitlab.freedesktop.org/pipewire/wireplumber.git"},"commits":[{"id":"1db58b341f582ca7c9c293810196a75b431bd5bd","message":"module: Load and destroy modules on the client context's thread\nDestroying a module from the main thread with the client context locked is not\nsafe because the module's teardown may do a blocking invoke on the context's\nloop (e.g. filter-chain's LV2 plugin cleanup), which releases the lock and lets\nthe loop thread run.\n\nAdd wp_client_context_invoke_sync(), which runs a function on the loop thread\nand waits for it on its own condition, and use it in WpImplModule to load and\ndestroy the module.\n\nSee #1029\n\nAssisted-by: Claude:claude-opus-5-5\n","title":"module: Load and destroy modules on the client context's thread","timestamp":"2026-09-28T15:47:28+00:00","url":"https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/1db58b341f582ca7c9c293810196a75b431bd5bd","author":{"name":"Julian Bouzas","email":"julian.bouzas@collabora.com"},"added":[],"modified":["lib/wp/module.c","lib/wp/private/client-context.c","lib/wp/private/client-context.h","tests/wp/client-context.c"],"removed":[]}],"total_commits_count":1,"push_options":{},"repository":{"name":"wireplumber","url":"git@ssh.gitlab.freedesktop.org:pipewire/wireplumber.git","description":"Session / policy manager implementation for PipeWire","homepage":"https://gitlab.freedesktop.org/pipewire/wireplumber","git_http_url":"https://gitlab.freedesktop.org/pipewire/wireplumber.git","git_ssh_url":"git@ssh.gitlab.freedesktop.org:pipewire/wireplumber.git","visibility_level":20}}