[libdazzle] macros: add dzl_clear_signal_handler()
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libdazzle] macros: add dzl_clear_signal_handler()
- Date: Sun, 26 Nov 2017 23:17:58 +0000 (UTC)
commit 819552a2994d76e5b62bbdc624c5b7e03986a4b7
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 files changed, 12 insertions(+), 0 deletions(-)
---
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]