mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 06:56:14 +01:00
gmain: Use sig_atomic_t for list of pending Unix signals
Pointed out by: Simon McVittie <simon.mcvittie@collabora.co.uk> https://bugzilla.gnome.org/show_bug.cgi?id=671997
This commit is contained in:
parent
f3fca56b7e
commit
6833385c5a
12
configure.ac
12
configure.ac
@ -577,6 +577,18 @@ AC_CHECK_SIZEOF(void *)
|
|||||||
AC_CHECK_SIZEOF(long long)
|
AC_CHECK_SIZEOF(long long)
|
||||||
AC_CHECK_SIZEOF(__int64)
|
AC_CHECK_SIZEOF(__int64)
|
||||||
|
|
||||||
|
AC_CACHE_CHECK([for sig_atomic_t], ac_cv_type_sig_atomic_t,
|
||||||
|
[AC_TRY_LINK([#include <signal.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
sig_atomic_t val = 42;],
|
||||||
|
[return val == 42 ? 0 : 1],
|
||||||
|
ac_cv_type_sig_atomic_t=yes,
|
||||||
|
ac_cv_type_sig_atomic_t=no)])
|
||||||
|
if test x$ac_cv_type_sig_atomic_t = xyes; then
|
||||||
|
AC_DEFINE(HAVE_SIG_ATOMIC_T, 1,
|
||||||
|
[Define if you have the 'sig_atomic_t' type.])
|
||||||
|
fi
|
||||||
|
|
||||||
if test x$ac_cv_sizeof_long = x8 || test x$ac_cv_sizeof_long_long = x8 || test x$ac_cv_sizeof___int64 = x8 ; then
|
if test x$ac_cv_sizeof_long = x8 || test x$ac_cv_sizeof_long_long = x8 || test x$ac_cv_sizeof___int64 = x8 ; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
|
@ -388,8 +388,13 @@ static GMainContext *default_main_context;
|
|||||||
/* UNIX signals work by marking one of these variables then waking the
|
/* UNIX signals work by marking one of these variables then waking the
|
||||||
* worker context to check on them and dispatch accordingly.
|
* worker context to check on them and dispatch accordingly.
|
||||||
*/
|
*/
|
||||||
static volatile gchar unix_signal_pending[NSIG];
|
#ifdef HAVE_SIG_ATOMIC_T
|
||||||
static volatile gboolean any_unix_signal_pending;
|
static volatile sig_atomic_t unix_signal_pending[NSIG];
|
||||||
|
static volatile sig_atomic_t any_unix_signal_pending;
|
||||||
|
#else
|
||||||
|
static volatile int unix_signal_pending[NSIG];
|
||||||
|
static volatile int any_unix_signal_pending;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Guards all the data below */
|
/* Guards all the data below */
|
||||||
G_LOCK_DEFINE_STATIC (unix_signal_lock);
|
G_LOCK_DEFINE_STATIC (unix_signal_lock);
|
||||||
|
Loading…
Reference in New Issue
Block a user