mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-04 07:26:33 +00:00
ed1bdf9b1a
We create a new context in `gst_gl_context_create_thread()` and then activate it on the current thread. Thereafter we assume that the current thread continues to be the active thread for that context and call `gst_gl_context_fill_info()` which asserts that the current thread is the active thread. However, if at the same time a different thread calls `send_message_async()`, it will call into `gst_gl_window_cocoa_send_message_async()` which will schedule the message to be invoked using GCD. That anonymous function will also call `gst_gl_context_activate()`, which creates a race, which can lead to: ``` gst_gl_context_fill_info: assertion 'context->priv->active_thread == g_thread_self ()' failed ``` Fix it by using `gst_gl_context_thread_add()` to invoke `fill_info()` on the context. Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3732> |
||
---|---|---|
.. | ||
gst | ||
meson.build |