[kazehakase-svn] [3490] Add signal handler for safe termination from external signal.

Back to archive index

svnno****@sourc***** svnno****@sourc*****
Sun Mar 23 00:33:49 JST 2008


Revision: 3490
          http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=kazehakase&view=rev&rev=3490
Author:   pal_gene
Date:     2008-03-23 00:33:49 +0900 (Sun, 23 Mar 2008)

Log Message:
-----------
Add signal handler for safe termination from external signal.
Need research about signum.
Currently handle only SIGINT and SIGTERM.

Modified Paths:
--------------
    kazehakase/trunk/ChangeLog
    kazehakase/trunk/src/main.c

Modified: kazehakase/trunk/ChangeLog
===================================================================
--- kazehakase/trunk/ChangeLog	2008-03-22 10:36:15 UTC (rev 3489)
+++ kazehakase/trunk/ChangeLog	2008-03-22 15:33:49 UTC (rev 3490)
@@ -1,4 +1,12 @@
 2008-03-22  Shunichi Fuji  <palgl****@gmail*****>
+
+	* src/main.c:
+	Add signal handler for safe termination from external signal.
+	Need research about signum.
+	Currently handle only SIGINT and SIGTERM.
+	
+2008-03-22  Shunichi Fuji  <palgl****@gmail*****>
+
 	* etc/bookmarkbar.xml:
 	Update Slashdot rss.
 

Modified: kazehakase/trunk/src/main.c
===================================================================
--- kazehakase/trunk/src/main.c	2008-03-22 10:36:15 UTC (rev 3489)
+++ kazehakase/trunk/src/main.c	2008-03-22 15:33:49 UTC (rev 3490)
@@ -29,6 +29,10 @@
 #include <gtk/gtk.h>
 #include <glib/gi18n.h>
 
+#ifndef G_OS_WIN32
+#include <signal.h>
+#endif
+
 #include "kazehakase.h"
 #include "kz-window.h"
 #include "kz-ext.h"
@@ -406,6 +410,15 @@
 	return window;
 }
 
+/**
+ * Signal handler for safe termination from external signal
+ * @param signum signal number, will be SIGINT or SIGTERM
+ */
+/* TODO:should handle more about other signum? */
+void kz_sighandle_exit(int signum)
+{
+	gtk_main_quit();
+}
 
 /******************************************************************************
  *                                                                            *
@@ -483,6 +496,15 @@
 		return 0;   /* found kazehakase process */
 	}
 
+	/* signal handler for safe termination */
+	/* TODO: need win32 version? */
+#ifndef G_OS_WIN32
+	struct sigaction *act = g_malloc0(sizeof(struct sigaction));
+	act->sa_handler = kz_sighandle_exit;
+	sigaction(SIGINT,	act, NULL);
+	sigaction(SIGTERM,	act, NULL);
+#endif
+
  	kz_app = kz_app_new(argc, argv);
 	kz_app_init_dependencies(kz_app, &initial_address);
 




More information about the Kazehakase-cvs mailing list
Back to archive index