gst: don't use volatile to mean atomic
authorMatthew Waters <matthew@centricular.com>
Fri, 19 Mar 2021 04:16:06 +0000 (15:16 +1100)
committerMatthew Waters <matthew@centricular.com>
Fri, 19 Mar 2021 04:17:05 +0000 (15:17 +1100)
volatile is not sufficient to provide atomic guarantees and real atomics
should be used instead.  GCC 11 has started warning about using volatile
with atomic operations.

https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1719

Discovered in https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/868

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/merge_requests/78>

ext/x264/gstencoderbitrateprofilemanager.c

index ef99b0e2460b97a090a0b06e9cf499f3c2a7b9d1..5ef83eeceb8b979cb7e3a546dfdae75e8140cb91 100644 (file)
@@ -205,7 +205,7 @@ gst_encoder_bitrate_profile_manager_new (guint default_bitrate)
 {
   GstEncoderBitrateProfileManager *self =
       g_new0 (GstEncoderBitrateProfileManager, 1);
-  static volatile gsize _init = 0;
+  static gsize _init = 0;
 
   if (g_once_init_enter (&_init)) {
     GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "encoderbitratemanager", 0,