[libdazzle/libdazzle-3-26] macros: add dzl_clear_signal_handler()
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libdazzle/libdazzle-3-26] macros: add dzl_clear_signal_handler()
- Date: Wed, 17 Jan 2018 00:13:44 +0000 (UTC)
commit de839681b88b5ea1b6cca0f3530296a498e77682
Author: Christian Hergert <chergert redhat com>
Date: Sun Nov 26 15:17:21 2017 -0800
macros: add dzl_clear_signal_handler()
This is useful if we want a re-entrant safe way to clear a signal handler
from a field.
src/util/dzl-macros.h | 12 ++++++++++++
1 file changed, 12 insertions(+)
---
diff --git a/src/util/dzl-macros.h b/src/util/dzl-macros.h
index 7238f0b..ca9ed27 100644
--- a/src/util/dzl-macros.h
+++ b/src/util/dzl-macros.h
@@ -37,6 +37,18 @@ G_BEGIN_DECLS
#define dzl_set_weak_pointer(ptr,obj) \
((obj!=*(ptr))?(dzl_clear_weak_pointer(ptr),*(ptr)=obj,((obj)?g_object_add_weak_pointer((GObject*)obj,(gpointer*)ptr),NULL:NULL),1):0)
+static inline void
+dzl_clear_signal_handler (gpointer object,
+ gulong *location_of_handler)
+{
+ if (*location_of_handler != 0)
+ {
+ gulong handler = *location_of_handler;
+ *location_of_handler = 0;
+ g_signal_handler_disconnect (object, handler);
+ }
+}
+
static inline gboolean
dzl_str_empty0 (const gchar *str)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]