diff options
author | Fabiano Fidêncio <fidencio@redhat.com> | 2015-07-22 02:51:49 +0200 |
---|---|---|
committer | Fabiano Fidêncio <fidencio@redhat.com> | 2015-07-22 14:56:57 +0200 |
commit | 0a464aae9a764c404ea76fe2212d45e5b2d87d2f (patch) | |
tree | c787692d5d78ce31d1b993a6dfac95db23c22a37 | |
parent | 8a2420ecdfe7ae9eff3f7c9a0c0412af7d985fab (diff) | |
download | virt-viewer-0a464aae9a764c404ea76fe2212d45e5b2d87d2f.tar.gz virt-viewer-0a464aae9a764c404ea76fe2212d45e5b2d87d2f.tar.xz virt-viewer-0a464aae9a764c404ea76fe2212d45e5b2d87d2f.zip |
events: register event using GOnce to avoid multiple initializations
Based on commit 8f8d9ce5238dbcbce40aa04ba55b8c55f97c79c0 from
libvirt-glib.
Original author: Marc-André Lureau <marcandre.lureau@redhat.com>
Related to: rhbz#1243228
-rw-r--r-- | src/virt-viewer-events.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/virt-viewer-events.c b/src/virt-viewer-events.c index f767c2e..daf128e 100644 --- a/src/virt-viewer-events.c +++ b/src/virt-viewer-events.c @@ -392,8 +392,8 @@ cleanup: return ret; } - -void virt_viewer_events_register(void) { +static gpointer event_register_once(gpointer data G_GNUC_UNUSED) +{ eventlock = g_mutex_new(); virEventRegisterImpl(virt_viewer_events_add_handle, virt_viewer_events_update_handle, @@ -401,6 +401,14 @@ void virt_viewer_events_register(void) { virt_viewer_events_add_timeout, virt_viewer_events_update_timeout, virt_viewer_events_remove_timeout); + + return NULL; +} + +void virt_viewer_events_register(void) { + static GOnce once = G_ONCE_INIT; + + g_once(&once, event_register_once, NULL); } /* |