Cache daemon-running status.
authorshort <>
Fri, 21 May 2004 06:46:42 +0000 (06:46 +0000)
committershort <>
Fri, 21 May 2004 06:46:42 +0000 (06:46 +0000)
src/ui-gnome.c

index 99bdd90..df2d745 100644 (file)
@@ -57,9 +57,18 @@ static GtkEntry *PortEntry;
 static void state_start_stop(void)
 {
 pid_t daemon_pid;
+gboolean daemon_running;
+static gboolean last_daemon_running,last_daemon_running_set=FALSE;
 
        daemon_pid=is_daemon_running();
-       gboolean daemon_running=((pid_t)-1!=daemon_pid);
+       daemon_running=((pid_t)-1!=daemon_pid);
+
+       /* Cache the result; maybe not needed. */
+       if (last_daemon_running_set && last_daemon_running==daemon_running)
+               return;
+       last_daemon_running=daemon_running;
+       last_daemon_running_set=TRUE;
+
        gtk_widget_set_sensitive(GTK_WIDGET(ButtonStart),!daemon_running);
        gtk_widget_set_sensitive(GTK_WIDGET(ButtonStop) , daemon_running);
        gtk_widget_set_sensitive(GTK_WIDGET(PortHBox)   ,!daemon_running);