emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r105402: Check for pthread and use it


From: Jan D.
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r105402: Check for pthread and use it if found.
Date: Thu, 04 Aug 2011 19:04:39 +0200
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 105402
fixes bug(s): http://debbugs.gnu.org/9216
committer: Jan D. <address@hidden>
branch nick: trunk
timestamp: Thu 2011-08-04 19:04:39 +0200
message:
  Check for pthread and use it if found.
  
  * configure.in (HAVE_PTHREAD): Add check for -lpthread.
  (HAVE_GTK_AND_PTHREAD): Remove.
  
  * src/Makefile.in (LIB_PTHREAD): New variable.
  (LIBES): Add LIB_PTHREAD (Bug#9216).
  
  * src/alloc.c, src/emacs.c, src/gmalloc.c, src/gtkutil.c, src/keyboard.c, 
src/syssignal.h:
  Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
modified:
  ChangeLog
  configure.in
  src/ChangeLog
  src/Makefile.in
  src/alloc.c
  src/emacs.c
  src/gmalloc.c
  src/gtkutil.c
  src/keyboard.c
  src/syssignal.h
=== modified file 'ChangeLog'
--- a/ChangeLog 2011-07-28 18:33:24 +0000
+++ b/ChangeLog 2011-08-04 17:04:39 +0000
@@ -1,3 +1,8 @@
+2011-08-04  Jan Djärv  <address@hidden>
+
+       * configure.in (HAVE_PTHREAD): Add check for -lpthread (Bug#9216).
+       (HAVE_GTK_AND_PTHREAD): Remove.
+
 2011-07-28  Alp Aker  <address@hidden>
 
        * configure.in (HAVE_RSVG): Allow use of -lrsvg-2 for any NextStep

=== modified file 'configure.in'
--- a/configure.in      2011-07-28 18:33:24 +0000
+++ b/configure.in      2011-08-04 17:04:39 +0000
@@ -1687,6 +1687,21 @@
 dnl FIXME replace main with a function we actually want from this library.
 AC_CHECK_LIB(Xbsd, main, LD_SWITCH_X_SITE="$LD_SWITCH_X_SITE -lXbsd")
 
+dnl Check if pthreads is available.
+LIB_PTHREAD=
+AC_CHECK_HEADERS(pthread.h)
+if test "$ac_cv_header_pthread_h"; then
+  AC_CHECK_LIB(pthread, pthread_self, HAVE_PTHREAD=yes)
+fi
+if test "$HAVE_PTHREAD" = yes; then
+  case "${canonical}" in
+    *-hpux*) ;;
+    *) LIB_PTHREAD="-lpthread" ;;
+  esac
+  AC_DEFINE(HAVE_PTHREAD, 1, [Define to 1 if you have pthread (-lpthread).])
+fi
+AC_SUBST([LIB_PTHREAD])
+
 AC_CHECK_LIB(pthreads, cma_open)
 
 ## Note: when using cpp in s/aix4.2.h, this definition depended on
@@ -1943,21 +1958,6 @@
     AC_CHECK_FUNCS(gtk_file_selection_new)
   fi
 
-  dnl Check if pthreads are available.  Emacs only needs this when using
-  dnl gtk_file_chooser under Gnome.
-    HAVE_GTK_AND_PTHREAD=no
-    AC_CHECK_HEADERS(pthread.h)
-    if test "$ac_cv_header_pthread_h"; then
-      AC_CHECK_LIB(pthread, pthread_self, HAVE_GTK_AND_PTHREAD=yes)
-    fi
-    if test "$HAVE_GTK_AND_PTHREAD" = yes; then
-      case "${canonical}" in
-        *-hpux*) ;;
-        *) GTK_LIBS="$GTK_LIBS -lpthread" ;;
-      esac
-      AC_DEFINE(HAVE_GTK_AND_PTHREAD, 1,
-               [Define to 1 if you have GTK and pthread (-lpthread).])
-    fi
 
   dnl Check for functions introduced in 2.14 and later.
   AC_CHECK_FUNCS(gtk_widget_get_window gtk_widget_set_has_window \

=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2011-08-04 14:25:21 +0000
+++ b/src/ChangeLog     2011-08-04 17:04:39 +0000
@@ -1,3 +1,11 @@
+2011-08-04  Jan Djärv  <address@hidden>
+
+       * Makefile.in (LIB_PTHREAD): New variable.
+       (LIBES): Add LIB_PTHREAD (Bug#9216).
+
+       * alloc.c, emacs.c, gmalloc.c, gtkutil.c, keyboard.c, syssignal.h:
+       Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
+
 2011-08-04  Andreas Schwab  <address@hidden>
 
        * regex.c (re_iswctype): Remove some redundant boolean

=== modified file 'src/Makefile.in'
--- a/src/Makefile.in   2011-07-08 20:20:19 +0000
+++ b/src/Makefile.in   2011-08-04 17:04:39 +0000
@@ -130,6 +130,9 @@
 ## -lm, or empty.
 address@hidden@
 
+## -lpthreads, or empty.
address@hidden@
+
 address@hidden@
 address@hidden@
 address@hidden@
@@ -385,7 +388,7 @@
    $(LIBXML2_LIBS) $(LIBGPM) $(LIBRESOLV) $(LIBS_SYSTEM) \
    $(LIBS_TERMCAP) $(GETLOADAVG_LIBS) $(SETTINGS_LIBS) $(LIBSELINUX_LIBS) \
    $(FREETYPE_LIBS) $(FONTCONFIG_LIBS) $(LIBOTF_LIBS) $(M17N_FLT_LIBS) \
-   $(LIBGNUTLS_LIBS) $(LIB_PTHREAD_SIGMASK) \
+   $(LIBGNUTLS_LIBS) $(LIB_PTHREAD) $(LIB_PTHREAD_SIGMASK) \
    $(LIB_GCC) $(LIB_MATH) $(LIB_STANDARD) $(LIB_GCC)
 
 all: emacs$(EXEEXT) $(OTHER_FILES)

=== modified file 'src/alloc.c'
--- a/src/alloc.c       2011-07-28 17:05:33 +0000
+++ b/src/alloc.c       2011-08-04 17:04:39 +0000
@@ -24,7 +24,7 @@
 
 #include <signal.h>
 
-#ifdef HAVE_GTK_AND_PTHREAD
+#ifdef HAVE_PTHREAD
 #include <pthread.h>
 #endif
 
@@ -84,13 +84,15 @@
 #endif /* not DOUG_LEA_MALLOC */
 
 #if ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT
-#ifdef HAVE_GTK_AND_PTHREAD
+#ifdef HAVE_PTHREAD
 
 /* When GTK uses the file chooser dialog, different backends can be loaded
    dynamically.  One such a backend is the Gnome VFS backend that gets loaded
    if you run Gnome.  That backend creates several threads and also allocates
    memory with malloc.
 
+   Also, gconf and gsettings may create several threads.
+
    If Emacs sets malloc hooks (! SYSTEM_MALLOC) and the emacs_blocked_*
    functions below are called from malloc, there is a chance that one
    of these threads preempts the Emacs main thread and the hook variables
@@ -122,12 +124,12 @@
     }                                                   \
   while (0)
 
-#else /* ! defined HAVE_GTK_AND_PTHREAD */
+#else /* ! defined HAVE_PTHREAD */
 
 #define BLOCK_INPUT_ALLOC BLOCK_INPUT
 #define UNBLOCK_INPUT_ALLOC UNBLOCK_INPUT
 
-#endif /* ! defined HAVE_GTK_AND_PTHREAD */
+#endif /* ! defined HAVE_PTHREAD */
 #endif /* ! defined SYSTEM_MALLOC && ! defined SYNC_INPUT */
 
 /* Mark, unmark, query mark bit of a Lisp string.  S must be a pointer
@@ -1265,7 +1267,7 @@
 }
 
 
-#ifdef HAVE_GTK_AND_PTHREAD
+#ifdef HAVE_PTHREAD
 /* Called from Fdump_emacs so that when the dumped Emacs starts, it has a
    normal malloc.  Some thread implementations need this as they call
    malloc before main.  The pthread_self call in BLOCK_INPUT_ALLOC then
@@ -1278,7 +1280,7 @@
   __malloc_hook = old_malloc_hook;
   __realloc_hook = old_realloc_hook;
 }
-#endif /* HAVE_GTK_AND_PTHREAD */
+#endif /* HAVE_PTHREAD */
 
 
 /* Called from main to set up malloc to use our hooks.  */
@@ -1286,7 +1288,7 @@
 void
 uninterrupt_malloc (void)
 {
-#ifdef HAVE_GTK_AND_PTHREAD
+#ifdef HAVE_PTHREAD
 #ifdef DOUG_LEA_MALLOC
   pthread_mutexattr_t attr;
 
@@ -1300,7 +1302,7 @@
      and the bundled gmalloc.c doesn't require it.  */
   pthread_mutex_init (&alloc_mutex, NULL);
 #endif /* !DOUG_LEA_MALLOC */
-#endif /* HAVE_GTK_AND_PTHREAD */
+#endif /* HAVE_PTHREAD */
 
   if (__free_hook != emacs_blocked_free)
     old_free_hook = __free_hook;

=== modified file 'src/emacs.c'
--- a/src/emacs.c       2011-07-11 06:05:57 +0000
+++ b/src/emacs.c       2011-08-04 17:04:39 +0000
@@ -1120,7 +1120,7 @@
 #if defined (USG5) && defined (INTERRUPT_INPUT)
       setpgrp ();
 #endif
-#if defined (HAVE_GTK_AND_PTHREAD) && !defined (SYSTEM_MALLOC) && !defined 
(DOUG_LEA_MALLOC)
+#if defined (HAVE_PTHREAD) && !defined (SYSTEM_MALLOC) && !defined 
(DOUG_LEA_MALLOC)
       {
         extern void malloc_enable_thread (void);
 
@@ -2185,7 +2185,7 @@
     memory_warnings (my_edata, malloc_warning);
   }
 #endif /* not WINDOWSNT */
-#if defined (HAVE_GTK_AND_PTHREAD) && !defined SYNC_INPUT
+#if defined (HAVE_PTHREAD) && !defined SYNC_INPUT
   /* Pthread may call malloc before main, and then we will get an endless
      loop, because pthread_self (see alloc.c) calls malloc the first time
      it is called on some systems.  */

=== modified file 'src/gmalloc.c'
--- a/src/gmalloc.c     2011-07-07 01:32:56 +0000
+++ b/src/gmalloc.c     2011-08-04 17:04:39 +0000
@@ -37,7 +37,7 @@
 #include <config.h>
 #endif
 
-#ifdef HAVE_GTK_AND_PTHREAD
+#ifdef HAVE_PTHREAD
 #define USE_PTHREAD
 #endif
 

=== modified file 'src/gtkutil.c'
--- a/src/gtkutil.c     2011-07-13 15:42:12 +0000
+++ b/src/gtkutil.c     2011-08-04 17:04:39 +0000
@@ -1907,12 +1907,12 @@
   int filesel_done = 0;
   xg_get_file_func func;
 
-#if defined (HAVE_GTK_AND_PTHREAD) && defined (__SIGRTMIN)
+#if defined (HAVE_PTHREAD) && defined (__SIGRTMIN)
   /* I really don't know why this is needed, but without this the GLIBC add on
      library linuxthreads hangs when the Gnome file chooser backend creates
      threads.  */
   sigblock (sigmask (__SIGRTMIN));
-#endif /* HAVE_GTK_AND_PTHREAD */
+#endif /* HAVE_PTHREAD */
 
 #ifdef HAVE_GTK_FILE_SELECTION_NEW
 
@@ -1932,7 +1932,7 @@
 
   filesel_done = xg_dialog_run (f, w);
 
-#if defined (HAVE_GTK_AND_PTHREAD) && defined (__SIGRTMIN)
+#if defined (HAVE_PTHREAD) && defined (__SIGRTMIN)
   sigunblock (sigmask (__SIGRTMIN));
 #endif
 
@@ -1960,9 +1960,9 @@
   char *fontname = NULL;
   int done = 0;
 
-#if defined (HAVE_GTK_AND_PTHREAD) && defined (__SIGRTMIN)
+#if defined (HAVE_PTHREAD) && defined (__SIGRTMIN)
   sigblock (sigmask (__SIGRTMIN));
-#endif /* HAVE_GTK_AND_PTHREAD */
+#endif /* HAVE_PTHREAD */
 
   w = gtk_font_selection_dialog_new ("Pick a font");
   if (!default_name)
@@ -1974,7 +1974,7 @@
 
   done = xg_dialog_run (f, w);
 
-#if defined (HAVE_GTK_AND_PTHREAD) && defined (__SIGRTMIN)
+#if defined (HAVE_PTHREAD) && defined (__SIGRTMIN)
   sigunblock (sigmask (__SIGRTMIN));
 #endif
 

=== modified file 'src/keyboard.c'
--- a/src/keyboard.c    2011-07-14 20:40:35 +0000
+++ b/src/keyboard.c    2011-08-04 17:04:39 +0000
@@ -44,7 +44,7 @@
 #include "process.h"
 #include <errno.h>
 
-#ifdef HAVE_GTK_AND_PTHREAD
+#ifdef HAVE_PTHREAD
 #include <pthread.h>
 #endif
 #ifdef MSDOS

=== modified file 'src/syssignal.h'
--- a/src/syssignal.h   2011-04-14 06:26:22 +0000
+++ b/src/syssignal.h   2011-08-04 17:04:39 +0000
@@ -18,7 +18,7 @@
 
 extern void init_signals (void);
 
-#if defined (HAVE_GTK_AND_PTHREAD) || defined (HAVE_NS)
+#ifdef HAVE_PTHREAD
 #include <pthread.h>
 /* If defined, asynchronous signals delivered to a non-main thread are
    forwarded to the main thread.  */


reply via email to

[Prev in Thread] Current Thread [Next in Thread]