svnno****@sourc*****
svnno****@sourc*****
Sun Mar 23 22:56:31 JST 2008
Revision: 3492 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=kazehakase&view=rev&rev=3492 Author: pal_gene Date: 2008-03-23 22:56:31 +0900 (Sun, 23 Mar 2008) Log Message: ----------- - make signal handler to static. - add prototype declare. - don't use allocation while sig handler. - more treat G_OS_WIN32 in above. Modified Paths: -------------- kazehakase/trunk/ChangeLog kazehakase/trunk/src/main.c Modified: kazehakase/trunk/ChangeLog =================================================================== --- kazehakase/trunk/ChangeLog 2008-03-22 16:01:50 UTC (rev 3491) +++ kazehakase/trunk/ChangeLog 2008-03-23 13:56:31 UTC (rev 3492) @@ -1,6 +1,14 @@ 2008-03-22 Shunichi Fuji <palgl****@gmail*****> * src/main.c: + - make signal handler to static. + - add prototype declare. + - don't use allocation while sig handler. + - more treat G_OS_WIN32 in above. + +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. Modified: kazehakase/trunk/src/main.c =================================================================== --- kazehakase/trunk/src/main.c 2008-03-22 16:01:50 UTC (rev 3491) +++ kazehakase/trunk/src/main.c 2008-03-23 13:56:31 UTC (rev 3492) @@ -56,7 +56,9 @@ static GOptionGroup *main_group; static void activate_action(const gchar *text); - +#ifndef G_OS_WIN32 +static void kz_sighandle_exit(int signum); +#endif /****************************************************************************** * * * arguments parser * @@ -410,19 +412,22 @@ return window; } +#ifndef G_OS_WIN32 /** * 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) +static void kz_sighandle_exit(int signum) { g_warning("Start terminate ..."); - struct sigaction *act = g_malloc0(sizeof(struct sigaction)); - act->sa_handler = SIG_IGN; - sigaction(signum, act, NULL); + struct sigaction act; + memset(&act, 0, sizeof(struct sigaction)); + act.sa_handler = SIG_IGN; + sigaction(signum, &act, NULL); gtk_main_quit(); } +#endif /****************************************************************************** * * @@ -503,10 +508,11 @@ /* 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); + struct sigaction act; + memset(&act, 0, 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);