NetworkManager/shared/nm-glib-aux
Thomas Haller 2ef5014f98 shared: add nm_clear_g_source_inst()
glib really likes the numeric source IDs. That is, g_idle_add(), g_timeout_add(),
etc. return those IDs, that can then be destroyed with g_remove_source() (or
nm_clear_g_source()).

I think these numeric IDs are really not great.

- API like g_idle_add() and g_remove_source() only works with the g_main_context_get_default()
  instance. That means, you cannot use this API for any other contexts. If you'd insist on using
  numeric IDs, you'd need to call g_main_context_find_source_by_id() on the right context
  first (but you'd also have to track the context alongside the ID).
- g_remove_source() requires first a call to g_main_context_find_source_by_id(). This involves
  taking a mutex and doing an extra hash lookup.

Instead, it often seems preferable to use the GSource instance directly. It works
with any context, it can be referenced and unreferenced, and it can be destroyed, and
avoids the overhead of g_main_context_find_source_by_id().

The only downside really is that keeping a GSource pointer takes one pointer size, while
the guint source ID is usually only 4 bytes.

Anyway, I think we should deal more with GSource instances directly. Hence, add this
convenience macro, that works like nm_clear_g_source().
2019-11-22 15:32:52 +01:00
..
nm-c-list.h shared: add nm_c_list_for_each_entry_prev() helper macro 2019-10-18 22:09:18 +02:00
nm-dbus-aux.c shared: add nm_dbus_connection_call_finish_*_cb() helpers 2019-10-16 08:56:00 +02:00
nm-dbus-aux.h shared: add nm_dbus_connection_call_finish_*_cb() helpers 2019-10-16 08:56:00 +02:00
nm-dedup-multi.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-dedup-multi.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-enum-utils.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-enum-utils.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-errno.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-errno.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-glib.h shared/nm-glib: add compat implementation for G_SOURCE_FUNC() 2019-11-22 15:32:52 +01:00
nm-hash-utils.c shared: add nm_ppdirect_hash()/nm_ppdirect_equal() helpers 2019-11-07 11:34:36 +01:00
nm-hash-utils.h shared: add nm_ppdirect_hash()/nm_ppdirect_equal() helpers 2019-11-07 11:34:36 +01:00
nm-io-utils.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-io-utils.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-jansson.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-json-aux.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-json-aux.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-keyfile-aux.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-keyfile-aux.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-logging-fwd.h nettools: enable logging 2019-11-22 10:24:49 +01:00
nm-macros-internal.h shared: add nm_dbus_path_not_empty() helper 2019-11-07 11:34:36 +01:00
nm-obj.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-random-utils.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-random-utils.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-ref-string.c shared: assert in nm_ref_string_unref() for valid NMRefString instance 2019-11-07 11:34:36 +01:00
nm-ref-string.h shared: add NM_IS_REF_STRING() helper 2019-10-27 14:30:51 +01:00
nm-secret-utils.c all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-secret-utils.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00
nm-shared-utils.c shared: add nm_g_*_source_new() and nm_g_source_attach() helpers 2019-11-22 15:32:52 +01:00
nm-shared-utils.h shared: add nm_clear_g_source_inst() 2019-11-22 15:32:52 +01:00
nm-time-utils.c shared: add nm_utils_monotonic_timestamp_from_boottime() util 2019-11-20 14:54:39 +01:00
nm-time-utils.h shared: add nm_utils_monotonic_timestamp_from_boottime() util 2019-11-20 14:54:39 +01:00
nm-value-type.h all: unify format of our Copyright source code comments 2019-10-02 17:03:52 +02:00