alsasink: Allow stop() function to happen during failing writes
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Tue, 24 Aug 2021 19:27:32 +0000 (15:27 -0400)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 20 Sep 2021 18:06:44 +0000 (18:06 +0000)
commit3607c617a52ee7d9b3f0cfb86042e4850f70fdf6
treef661ec37a26a837cf58d66d070e57818d3ee6cac
parent7b76c97de92a65cc8347c855cc89af517ad2e8f9
alsasink: Allow stop() function to happen during failing writes

In ALSA, there is possible temporary failures that may require a retry,
though in certain situation, this may leak to the write() function
holding on a lock forever preventing the pipeline from going to pause
or stop. Fix this by shortly dropping the lock between retries.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1261>
ext/alsa/gstalsasink.c