[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r32940 - gnunet-gtk/src/main
From: |
gnunet |
Subject: |
[GNUnet-SVN] r32940 - gnunet-gtk/src/main |
Date: |
Mon, 7 Apr 2014 20:17:39 +0200 |
Author: grothoff
Date: 2014-04-07 20:17:39 +0200 (Mon, 07 Apr 2014)
New Revision: 32940
Modified:
gnunet-gtk/src/main/gnunet-gtk.c
Log:
-fix segv on shutdown
Modified: gnunet-gtk/src/main/gnunet-gtk.c
===================================================================
--- gnunet-gtk/src/main/gnunet-gtk.c 2014-04-07 18:11:22 UTC (rev 32939)
+++ gnunet-gtk/src/main/gnunet-gtk.c 2014-04-07 18:17:39 UTC (rev 32940)
@@ -74,6 +74,11 @@
*/
GNUNET_SCHEDULER_TaskIdentifier restart_task;
+ /**
+ * ID of the signal associated with the window.
+ */
+ gulong sig_id;
+
};
@@ -145,6 +150,8 @@
GNUNET_SCHEDULER_cancel (p->restart_task);
p->restart_task = GNUNET_SCHEDULER_NO_TASK;
}
+ g_signal_handler_disconnect (p->s,
+ p->sig_id);
GNUNET_CONTAINER_DLL_remove (p_head,
p_tail,
p);
@@ -230,9 +237,12 @@
{
struct Plug *p = userdata;
- (void) GNUNET_OS_process_kill (p->proc, SIGTERM);
- GNUNET_OS_process_destroy (p->proc);
- p->proc = NULL;
+ if (NULL != p->proc)
+ {
+ (void) GNUNET_OS_process_kill (p->proc, SIGTERM);
+ GNUNET_OS_process_destroy (p->proc);
+ p->proc = NULL;
+ }
p->backoff = GNUNET_TIME_STD_BACKOFF (p->backoff);
p->restart_task = GNUNET_SCHEDULER_add_delayed (p->backoff,
&restart_process,
@@ -264,10 +274,10 @@
gtk_container_add (v, p->s);
p->binary = binary;
p->env_var = env_var;
- g_signal_connect (p->s,
- "plug-removed",
- G_CALLBACK (handle_remove),
- p);
+ p->sig_id = g_signal_connect (p->s,
+ "plug-removed",
+ G_CALLBACK (handle_remove),
+ p);
start_process (p);
gtk_widget_show (p->s);
GNUNET_CONTAINER_DLL_insert (p_head,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r32940 - gnunet-gtk/src/main,
gnunet <=