[gnome-keyring/wip/smcv/fix-ci] Stop using volatile in conjunction with atomic operations
- From: Simon McVittie <smcv src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-keyring/wip/smcv/fix-ci] Stop using volatile in conjunction with atomic operations
- Date: Mon, 27 Sep 2021 15:07:30 +0000 (UTC)
commit 6d80840f56fdd35a3ab19e269ee4ff16aa7b9ea9
Author: Simon McVittie <smcv debian org>
Date: Sun Sep 26 16:41:30 2021 +0100
Stop using volatile in conjunction with atomic operations
As discussed in <https://gitlab.gnome.org/GNOME/glib/-/issues/600>,
the volatile qualifier rarely has the semantics that are desired in C/C++.
With recent gcc versions, combining pointers to volatile-qualified types
with the __atomic_foo() family of builtins causes compiler warnings.
http://c.isvolatileusefulwiththreads.com/ has some other useful
references.
Signed-off-by: Simon McVittie <smcv debian org>
daemon/dbus/gkd-secret-dispatch.c | 2 +-
daemon/dbus/gkd-secret-error.c | 12 ++++++------
daemon/ssh-agent/test-gkd-ssh-agent-service.c | 2 +-
egg/egg-libgcrypt.c | 2 +-
egg/egg-oid.c | 2 +-
egg/egg-symkey.c | 2 +-
pkcs11/gkm/gkm-certificate.c | 2 +-
pkcs11/gkm/gkm-data-der.c | 2 +-
pkcs11/gkm/gkm-serializable.c | 8 ++++----
pkcs11/secret-store/gkm-secret-fields.c | 2 +-
pkcs11/xdg-store/gkm-xdg-trust.c | 2 +-
11 files changed, 19 insertions(+), 19 deletions(-)
---
diff --git a/daemon/dbus/gkd-secret-dispatch.c b/daemon/dbus/gkd-secret-dispatch.c
index fed4c13e..a33106c2 100644
--- a/daemon/dbus/gkd-secret-dispatch.c
+++ b/daemon/dbus/gkd-secret-dispatch.c
@@ -25,7 +25,7 @@
static void
gkd_secret_dispatch_base_init (gpointer gobject_class)
{
- static volatile gsize initialized = 0;
+ static gsize initialized = 0;
if (g_once_init_enter (&initialized)) {
g_once_init_leave (&initialized, 1);
}
diff --git a/daemon/dbus/gkd-secret-error.c b/daemon/dbus/gkd-secret-error.c
index f9012c30..ab0b20bc 100644
--- a/daemon/dbus/gkd-secret-error.c
+++ b/daemon/dbus/gkd-secret-error.c
@@ -38,13 +38,13 @@ static const GDBusErrorEntry gkd_secret_error_entries[] = {
GQuark
gkd_secret_error_quark (void)
{
- static volatile gsize quark_volatile = 0;
+ static gsize quark = 0;
g_dbus_error_register_error_domain ("gkd_secret_error",
- &quark_volatile,
+ &quark,
gkd_secret_error_entries,
G_N_ELEMENTS (gkd_secret_error_entries));
- return quark_volatile;
+ return quark;
}
static const GDBusErrorEntry gkd_secret_daemon_error_entries[] = {
@@ -54,13 +54,13 @@ static const GDBusErrorEntry gkd_secret_daemon_error_entries[] = {
GQuark
gkd_secret_daemon_error_quark (void)
{
- static volatile gsize quark_volatile = 0;
+ static gsize quark = 0;
g_dbus_error_register_error_domain ("gkd_secret_daemon_error",
- &quark_volatile,
+ &quark,
gkd_secret_daemon_error_entries,
G_N_ELEMENTS (gkd_secret_daemon_error_entries));
- return quark_volatile;
+ return quark;
}
void
diff --git a/daemon/ssh-agent/test-gkd-ssh-agent-service.c b/daemon/ssh-agent/test-gkd-ssh-agent-service.c
index 5c7a6179..970cdfde 100644
--- a/daemon/ssh-agent/test-gkd-ssh-agent-service.c
+++ b/daemon/ssh-agent/test-gkd-ssh-agent-service.c
@@ -39,7 +39,7 @@ typedef struct {
EggBuffer resp;
GkdSshAgentService *service;
GMainContext *server_thread_context;
- volatile gint server_thread_stop;
+ gint server_thread_stop; /* (atomic) */
GSocketConnection *connection;
GThread *thread;
GMutex lock;
diff --git a/egg/egg-libgcrypt.c b/egg/egg-libgcrypt.c
index 61fe115f..da2fd353 100644
--- a/egg/egg-libgcrypt.c
+++ b/egg/egg-libgcrypt.c
@@ -62,7 +62,7 @@ GCRY_THREAD_OPTION_PTHREAD_IMPL;
void
egg_libgcrypt_initialize (void)
{
- static volatile gsize gcrypt_initialized = 0;
+ static gsize gcrypt_initialized = 0;
unsigned seed;
if (g_once_init_enter (&gcrypt_initialized)) {
diff --git a/egg/egg-oid.c b/egg/egg-oid.c
index 96baea6d..fb3e3e06 100644
--- a/egg/egg-oid.c
+++ b/egg/egg-oid.c
@@ -115,7 +115,7 @@ static OidInfo oid_info[] = {
static OidInfo*
find_oid_info (GQuark oid)
{
- static volatile gsize inited_oids = 0;
+ static gsize inited_oids = 0;
int i;
g_return_val_if_fail (oid != 0, NULL);
diff --git a/egg/egg-symkey.c b/egg/egg-symkey.c
index 0f7a939f..80d4e66c 100644
--- a/egg/egg-symkey.c
+++ b/egg/egg-symkey.c
@@ -57,7 +57,7 @@ static GQuark OID_SHA1;
static void
init_quarks (void)
{
- static volatile gsize quarks_inited = 0;
+ static gsize quarks_inited = 0;
if (g_once_init_enter (&quarks_inited)) {
diff --git a/pkcs11/gkm/gkm-certificate.c b/pkcs11/gkm/gkm-certificate.c
index 28ae0960..d434e527 100644
--- a/pkcs11/gkm/gkm-certificate.c
+++ b/pkcs11/gkm/gkm-certificate.c
@@ -74,7 +74,7 @@ G_DEFINE_TYPE_EXTENDED (GkmCertificate, gkm_certificate, GKM_TYPE_OBJECT, 0,
static void
init_quarks (void)
{
- static volatile gsize quarks_inited = 0;
+ static gsize quarks_inited = 0;
if (g_once_init_enter (&quarks_inited)) {
#define QUARK(name, value) \
diff --git a/pkcs11/gkm/gkm-data-der.c b/pkcs11/gkm/gkm-data-der.c
index 68f41d49..e7528022 100644
--- a/pkcs11/gkm/gkm-data-der.c
+++ b/pkcs11/gkm/gkm-data-der.c
@@ -52,7 +52,7 @@ static GQuark OID_ANSI_SECP521R1;
static void
init_quarks (void)
{
- static volatile gsize quarks_inited = 0;
+ static gsize quarks_inited = 0;
if (g_once_init_enter (&quarks_inited)) {
diff --git a/pkcs11/gkm/gkm-serializable.c b/pkcs11/gkm/gkm-serializable.c
index ef7be957..7ebec114 100644
--- a/pkcs11/gkm/gkm-serializable.c
+++ b/pkcs11/gkm/gkm-serializable.c
@@ -37,9 +37,9 @@ gkm_serializable_base_init (gpointer gobject_class)
GType
gkm_serializable_get_type (void)
{
- static volatile gsize type_id__volatile = 0;
+ static gsize type_inited = 0;
- if (g_once_init_enter (&type_id__volatile)) {
+ if (g_once_init_enter (&type_inited)) {
static const GTypeInfo info = {
sizeof (GkmSerializableIface),
gkm_serializable_base_init, /* base init */
@@ -55,10 +55,10 @@ gkm_serializable_get_type (void)
GType type_id = g_type_register_static (G_TYPE_INTERFACE, "GkmSerializableIface", &info, 0);
g_type_interface_add_prerequisite (type_id, G_TYPE_OBJECT);
- g_once_init_leave (&type_id__volatile, type_id);
+ g_once_init_leave (&type_inited, type_id);
}
- return type_id__volatile;
+ return type_inited;
}
gboolean
diff --git a/pkcs11/secret-store/gkm-secret-fields.c b/pkcs11/secret-store/gkm-secret-fields.c
index 7e4559c6..71620499 100644
--- a/pkcs11/secret-store/gkm-secret-fields.c
+++ b/pkcs11/secret-store/gkm-secret-fields.c
@@ -124,7 +124,7 @@ compat_hash_value_as_string (const gchar *value)
GType
gkm_secret_fields_boxed_type (void)
{
- static volatile gsize type_inited = 0;
+ static gsize type_inited = 0;
static GType type = 0;
if (g_once_init_enter (&type_inited)) {
diff --git a/pkcs11/xdg-store/gkm-xdg-trust.c b/pkcs11/xdg-store/gkm-xdg-trust.c
index 518e3151..a18d6ebe 100644
--- a/pkcs11/xdg-store/gkm-xdg-trust.c
+++ b/pkcs11/xdg-store/gkm-xdg-trust.c
@@ -78,7 +78,7 @@ static GQuark TRUST_TRUSTED_ANCHOR;
static void
init_quarks (void)
{
- static volatile gsize quarks_inited = 0;
+ static gsize quarks_inited = 0;
if (g_once_init_enter (&quarks_inited)) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]