playbin3: Avoid group deactivation deadlock.
authorJan Schmidt <jan@centricular.com>
Mon, 4 Oct 2021 18:43:13 +0000 (05:43 +1100)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 8 Oct 2021 15:49:41 +0000 (15:49 +0000)
commit33ad1cdc5e03a7bc739c232ae0a2a652b820ad2e
tree6944f1d191db5dbd139a6efd02009a12a6406a86
parent1fa1b18a2489f6d21420086aa8398eb20d7ecb0a
playbin3: Avoid group deactivation deadlock.

Change locking around group deactivation to avoid deadlocks
when shutting down exactly as a buffering message arrives.

The PLAYBIN3_LOCK now protects the active field of the
source group. Everything else is still protected by the
source-group-lock.

Also properly protect group switching operations with
the PLAYBIN3_LOCK everywhere.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1049>
subprojects/gst-plugins-base/gst/playback/gstplaybin3.c