diff --git a/docs/pwg/advanced-allocation.xml b/docs/pwg/advanced-allocation.xml index a8c34be9d0..625e76ee85 100644 --- a/docs/pwg/advanced-allocation.xml +++ b/docs/pwg/advanced-allocation.xml @@ -453,13 +453,14 @@ my_example_meta_get_info (void) { static const GstMetaInfo *meta_info = NULL; - if (meta_info == NULL) { - meta_info = gst_meta_register (MY_EXAMPLE_META_API_TYPE, + if (g_once_init_enter (&meta_info)) { + const GstMetaInfo *mi = gst_meta_register (MY_EXAMPLE_META_API_TYPE, "MyExampleMeta", sizeof (MyExampleMeta), my_example_meta_init, my_example_meta_free, my_example_meta_transform); + g_once_init_leave (&meta_info, mi); } return meta_info; } diff --git a/libs/gst/net/gstnetaddressmeta.c b/libs/gst/net/gstnetaddressmeta.c index af869aea40..5b87afe085 100644 --- a/libs/gst/net/gstnetaddressmeta.c +++ b/libs/gst/net/gstnetaddressmeta.c @@ -82,12 +82,13 @@ gst_net_address_meta_get_info (void) { static const GstMetaInfo *meta_info = NULL; - if (meta_info == NULL) { - meta_info = gst_meta_register (GST_NET_ADDRESS_META_API_TYPE, + if (g_once_init_enter (&meta_info)) { + const GstMetaInfo *mi = gst_meta_register (GST_NET_ADDRESS_META_API_TYPE, "GstNetAddressMeta", sizeof (GstNetAddressMeta), net_address_meta_init, net_address_meta_free, net_address_meta_transform); + g_once_init_leave (&meta_info, mi); } return meta_info; } diff --git a/tests/check/gst/gstmeta.c b/tests/check/gst/gstmeta.c index 73b5d56c52..0f2355b8da 100644 --- a/tests/check/gst/gstmeta.c +++ b/tests/check/gst/gstmeta.c @@ -139,11 +139,12 @@ gst_meta_test_get_info (void) { static const GstMetaInfo *meta_test_info = NULL; - if (meta_test_info == NULL) { - meta_test_info = gst_meta_register (GST_META_TEST_API_TYPE, + if (g_once_init_enter (&meta_test_info)) { + const GstMetaInfo *mi = gst_meta_register (GST_META_TEST_API_TYPE, "GstMetaTest", sizeof (GstMetaTest), test_init_func, test_free_func, test_transform_func); + g_once_init_leave (&meta_test_info, mi); } return meta_test_info; }