summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2014-03-04 16:23:30 +1300
committerRobert Ancell <robert.ancell@canonical.com>2014-03-04 16:23:30 +1300
commited90f15eb81a8001512a4ff0e8f0602a7c2a0c5e (patch)
tree52eacd6e1582a0519bcb6ebbd87bf9091e7bf20e
parent442ec61615355012e6d9258582153dc3539841ff (diff)
downloadlightdm-ed90f15eb81a8001512a4ff0e8f0602a7c2a0c5e.tar.gz
More carefully remove GSources
-rw-r--r--src/process.c5
-rw-r--r--src/unity-system-compositor.c2
-rw-r--r--src/xdmcp-server.c5
3 files changed, 6 insertions, 6 deletions
diff --git a/src/process.c b/src/process.c
index 3010eb0e..24155d77 100644
--- a/src/process.c
+++ b/src/process.c
@@ -149,6 +149,7 @@ process_watch_cb (GPid pid, gint status, gpointer data)
{
Process *process = data;
+ process->priv->watch = 0;
process->priv->exit_status = status;
if (WIFEXITED (status))
@@ -156,10 +157,6 @@ process_watch_cb (GPid pid, gint status, gpointer data)
else if (WIFSIGNALED (status))
g_debug ("Process %d terminated with signal %d", pid, WTERMSIG (status));
- if (process->priv->watch)
- g_source_remove (process->priv->watch);
- process->priv->watch = 0;
-
if (process->priv->quit_timeout)
g_source_remove (process->priv->quit_timeout);
process->priv->quit_timeout = 0;
diff --git a/src/unity-system-compositor.c b/src/unity-system-compositor.c
index 9624f450..62102ea3 100644
--- a/src/unity-system-compositor.c
+++ b/src/unity-system-compositor.c
@@ -472,7 +472,7 @@ unity_system_compositor_finalize (GObject *object)
if (self->priv->from_compositor_watch)
g_source_remove (self->priv->from_compositor_watch);
g_free (self->priv->read_buffer);
- if (self->priv->timeout_source != 0)
+ if (self->priv->timeout_source)
g_source_remove (self->priv->timeout_source);
G_OBJECT_CLASS (unity_system_compositor_parent_class)->finalize (object);
diff --git a/src/xdmcp-server.c b/src/xdmcp-server.c
index 309d4aed..a2d45637 100644
--- a/src/xdmcp-server.c
+++ b/src/xdmcp-server.c
@@ -116,6 +116,8 @@ xdmcp_server_set_key (XDMCPServer *server, const gchar *key)
static gboolean
session_timeout_cb (XDMCPSession *session)
{
+ session->priv->inactive_timeout = 0;
+
g_debug ("Timing out unmanaged session %d", session->priv->id);
g_hash_table_remove (session->priv->server->priv->sessions, GINT_TO_POINTER ((gint) session->priv->id));
return FALSE;
@@ -516,7 +518,8 @@ handle_manage (XDMCPServer *server, GSocket *socket, GSocketAddress *address, XD
if (result)
{
/* Cancel the inactive timer */
- g_source_remove (session->priv->inactive_timeout);
+ if (session->priv->inactive_timeout)
+ g_source_remove (session->priv->inactive_timeout);
session->priv->started = TRUE;
}