diff options
author | Thibault Saunier <tsaunier@igalia.com> | 2021-04-15 13:28:42 -0400 |
---|---|---|
committer | Thibault Saunier <tsaunier@igalia.com> | 2021-04-15 13:29:43 -0400 |
commit | f9ce3946a1942e974c9d5b645550219c14b79cf6 (patch) | |
tree | a80c84abe37adf8df3c5d981ca32855ed519fa1b /ext/wpe/WPEThreadedView.cpp | |
parent | 41879b20c248ed795e7ba195313cdfae3a104391 (diff) | |
download | gstreamer-plugins-bad-f9ce3946a1942e974c9d5b645550219c14b79cf6.tar.gz |
wpe: Make threaded view singleton creation thread safe
It was leading to interesting failures.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2165>
Diffstat (limited to 'ext/wpe/WPEThreadedView.cpp')
-rw-r--r-- | ext/wpe/WPEThreadedView.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/wpe/WPEThreadedView.cpp b/ext/wpe/WPEThreadedView.cpp index ec30741fe..b2c81da46 100644 --- a/ext/wpe/WPEThreadedView.cpp +++ b/ext/wpe/WPEThreadedView.cpp @@ -66,9 +66,14 @@ static WPEContextThread *s_view = NULL; WPEContextThread& WPEContextThread::singleton() { - if (!s_view) + static gsize initialized = 0; + + if (g_once_init_enter (&initialized)) { s_view = new WPEContextThread; + g_once_init_leave (&initialized, 1); + } + return *s_view; } |