[geany/geany] a108f9: Re-enable SIGTERM handling
Matthew Brush
git-noreply at xxxxx
Fri Aug 4 09:22:04 UTC 2017
Branch: refs/heads/master
Author: Matthew Brush <matt at geany.org>
Committer: Matthew Brush <mbrush at codebrainz.ca>
Date: Fri, 04 Aug 2017 09:22:04 UTC
Commit: a108f9162cc98e501e2458cd8b35c499b7f87384
https://github.com/geany/geany/commit/a108f9162cc98e501e2458cd8b35c499b7f87384
Log Message:
-----------
Re-enable SIGTERM handling
Now that a new enough GLib is available the signal can be
handled cleanly on the main loop using the GSource for Unix signals.
This replaces the illegal SIGTERM handling that was disabled in
fbb89f523af47b35e238678d348cfa98e56c760a.
Closes #1255
Modified Paths:
--------------
src/libmain.c
Modified: src/libmain.c
21 lines changed, 14 insertions(+), 7 deletions(-)
===================================================================
@@ -76,6 +76,10 @@
#include <glib/gstdio.h>
+#ifdef G_OS_UNIX
+# include <glib-unix.h>
+#endif
+
#ifdef HAVE_LOCALE_H
# include <locale.h>
#endif
@@ -773,16 +777,20 @@ static gint setup_config_dir(void)
return mkdir_result;
}
-/* Signal handling removed since main_quit() uses functions that are
- * illegal in signal handlers
-static void signal_cb(gint sig)
+
+#ifdef G_OS_UNIX
+static gboolean signal_cb(gpointer user_data)
{
+ gint sig = GPOINTER_TO_INT(user_data);
if (sig == SIGTERM)
{
+ geany_debug("Received SIGTERM signal");
main_quit();
}
+ return G_SOURCE_REMOVE;
}
- */
+#endif
+
/* Used for command-line arguments at startup or from socket.
* this will strip any :line:col filename suffix from locale_filename */
@@ -1068,10 +1076,9 @@ gint main_lib(gint argc, gchar **argv)
g_thread_init(NULL);
#endif
- /* removed as signal handling was wrong, see signal_cb()
- signal(SIGTERM, signal_cb); */
-
#ifdef G_OS_UNIX
+ g_unix_signal_add(SIGTERM, signal_cb, GINT_TO_POINTER(SIGTERM));
+
/* ignore SIGPIPE signal for preventing sudden death of program */
signal(SIGPIPE, SIG_IGN);
#endif
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list