[glib/wip/glib-next: 10/22] Remove support for DCE threads



commit e63434e342409165f210d289131ad2cbf41ef00f
Author: Ryan Lortie <desrt desrt ca>
Date:   Wed Aug 31 16:41:24 2011 -0400

    Remove support for DCE threads

 configure.ac                      |   25 ++-------------
 docs/reference/glib/building.sgml |    2 +-
 gthread/gthread-posix.c           |   60 ++----------------------------------
 3 files changed, 9 insertions(+), 78 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 1e3c183..c9b8a7a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1848,7 +1848,7 @@ dnl *** g_thread checks ***
 dnl ***********************
 
 AC_ARG_WITH(threads,
-           [AC_HELP_STRING([--with-threads=@<:@posix/dce/win32@:>@],
+           [AC_HELP_STRING([--with-threads=@<:@posix/win32@:>@],
                            [specify a thread implementation to use])],
            [if test "x$with_threads" = x; then
 		want_threads=yes
@@ -1914,12 +1914,6 @@ if test "x$want_threads" = xyes || test "x$want_threads" = xposix \
 			[pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;],
 			have_threads=posix)
         fi
-        if test "x$have_threads" = xno; then
-                AC_TRY_COMPILE([#include <pthread.h>],
-			[pthread_mutex_t m; 
-                         pthread_mutex_init (&m, pthread_mutexattr_default);],
-			have_threads=dce)
-        fi
 	# Tru64Unix requires -pthread to find pthread.h. See #103020
 	CPPFLAGS="$CPPFLAGS -pthread"
 	if test "x$have_threads" = xno; then
@@ -2044,12 +2038,6 @@ if test x"$G_THREAD_CFLAGS" = x; then
 	*-dg-dgux*)  # DG/UX
 		G_THREAD_CFLAGS="-D_REENTRANT -D_POSIX4A_DRAFT10_SOURCE"
 		;;
-	*-osf*)
-		# So we are using dce threads. posix threads are already 
-		# catched above.
-		G_THREAD_CFLAGS="-threads"
-		G_THREAD_LIBS=$G_THREAD_CFLAGS
-		;;
 	*-sysv5uw7*) # UnixWare 7 
 		# We are not using gcc with -pthread. Catched above.
 		G_THREAD_CFLAGS="-Kthread"
@@ -2094,7 +2082,7 @@ dnl ******************************
 
 mutex_has_default=no
 case $have_threads in
-        posix|dce)
+        posix)
 	  glib_save_CPPFLAGS="$CPPFLAGS"
 	  CPPFLAGS="$CPPFLAGS $GTHREAD_COMPILE_IMPL_DEFINES"
           if test x"$G_THREAD_LIBS" = x; then
@@ -2107,7 +2095,7 @@ case $have_threads in
               *)
                 G_THREAD_LIBS=error
 	        glib_save_LIBS="$LIBS"
-	        for thread_lib in "" pthread pthread32 pthreads thread dce; do
+	        for thread_lib in "" pthread pthread32 pthreads thread; do
 			if test x"$thread_lib" = x; then
 				add_thread_lib=""
 				IN=""
@@ -2177,12 +2165,7 @@ case $have_threads in
           mutex_default_type='pthread_mutex_t'
           mutex_default_init='PTHREAD_MUTEX_INITIALIZER'
           mutex_header_file='pthread.h'
-	  if test "x$have_threads" = "xposix"; then
-	    g_threads_impl="POSIX"
-	  else
-	    g_threads_impl="DCE"
-	    have_threads="posix"
-	  fi
+	  g_threads_impl="POSIX"
 	  AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
           CPPFLAGS="$glib_save_CPPFLAGS"
           ;;
diff --git a/docs/reference/glib/building.sgml b/docs/reference/glib/building.sgml
index 23a8afa..73eb03d 100644
--- a/docs/reference/glib/building.sgml
+++ b/docs/reference/glib/building.sgml
@@ -146,7 +146,7 @@ How to compile GLib itself
 	<para>
 	  A thread implementation is needed. The thread support in GLib
 	  can be based upon several native thread implementations, e.g.
-	  POSIX threads, DCE threads or Solaris threads.
+	  POSIX threads, win32 threads or Solaris threads.
 	</para>
       </listitem>
       <listitem>
diff --git a/gthread/gthread-posix.c b/gthread/gthread-posix.c
index 5fbcf28..dd8edaf 100644
--- a/gthread/gthread-posix.c
+++ b/gthread/gthread-posix.c
@@ -81,21 +81,9 @@ static gboolean posix_check_cmd_prio_warned = FALSE;
      }G_STMT_END
 #endif /* G_ENABLE_DEBUG */
 
-#if defined(G_THREADS_IMPL_POSIX)
-# define posix_error(what) (what)
-# define mutexattr_default NULL
-# define condattr_default NULL
-#elif defined(G_THREADS_IMPL_DCE)
-# define posix_error(what) ((what) == -1 ? errno : 0)
-# define pthread_key_create(a, b) pthread_keycreate (a, b)
-# define pthread_attr_init(a) pthread_attr_create (a)
-# define pthread_attr_destroy(a) pthread_attr_delete (a)
-# define pthread_create(a, b, c, d) pthread_create (a, *b, c, d)
-# define mutexattr_default (pthread_mutexattr_default)
-# define condattr_default (pthread_condattr_default)
-#else /* neither G_THREADS_IMPL_POSIX nor G_THREADS_IMPL_DCE are defined */
-# error This should not happen. Contact the GLib team.
-#endif
+#define posix_error(what) (what)
+#define mutexattr_default NULL
+#define condattr_default NULL
 
 #if defined (POSIX_MIN_PRIORITY) && defined (POSIX_MAX_PRIORITY)
 # define HAVE_PRIORITIES 1
@@ -128,18 +116,12 @@ g_thread_impl_init(void)
   g_thread_min_stack_size = MAX (sysconf (_SC_THREAD_STACK_MIN), 0);
 #endif /* _SC_THREAD_STACK_MIN */
 #ifdef HAVE_PRIORITIES
-# ifdef G_THREADS_IMPL_POSIX
   {
     struct sched_param sched;
     int policy;
     posix_check_cmd (pthread_getschedparam (pthread_self(), &policy, &sched));
     priority_normal_value = sched.sched_priority;
   }
-# else /* G_THREADS_IMPL_DCE */
-  posix_check_cmd (priority_normal_value =
-		   pthread_getprio (*(pthread_t*)thread,
-				    g_thread_priority_map [priority]));
-# endif
 #endif /* HAVE_PRIORITIES */
 }
 #endif /* _SC_THREAD_STACK_MIN || HAVE_PRIORITIES */
@@ -174,13 +156,8 @@ g_mutex_trylock_posix_impl (GMutex * mutex)
 
   result = pthread_mutex_trylock ((pthread_mutex_t *) mutex);
 
-#ifdef G_THREADS_IMPL_POSIX
   if (result == EBUSY)
     return FALSE;
-#else /* G_THREADS_IMPL_DCE */
-  if (result == 0)
-    return FALSE;
-#endif
 
   posix_check_err (posix_error (result), "pthread_mutex_trylock");
   return TRUE;
@@ -230,11 +207,7 @@ g_cond_timed_wait_posix_impl (GCond * cond,
       result = pthread_cond_timedwait ((pthread_cond_t *) cond,
                                        (pthread_mutex_t *) entered_mutex,
                                        &end_time);
-#ifdef G_THREADS_IMPL_POSIX
       timed_out = (result == ETIMEDOUT);
-#else /* G_THREADS_IMPL_DCE */
-      timed_out = (result == -1) && (errno == EAGAIN);
-#endif
     }
 
   if (!timed_out)
@@ -274,16 +247,8 @@ g_private_get_posix_impl (GPrivate * private_key)
 {
   if (!private_key)
     return NULL;
-#ifdef G_THREADS_IMPL_POSIX
+
   return pthread_getspecific (*(pthread_key_t *) private_key);
-#else /* G_THREADS_IMPL_DCE */
-  {
-    void* data;
-    posix_check_cmd (pthread_getspecific (*(pthread_key_t *) private_key,
-					  &data));
-    return data;
-  }
-#endif
 }
 
 static void
@@ -322,23 +287,16 @@ g_thread_create_posix_impl (GThreadFunc thread_func,
     pthread_attr_setscope (&attr, PTHREAD_SCOPE_SYSTEM);
 #endif /* PTHREAD_SCOPE_SYSTEM */
 
-#ifdef G_THREADS_IMPL_POSIX
   posix_check_cmd (pthread_attr_setdetachstate (&attr,
           joinable ? PTHREAD_CREATE_JOINABLE : PTHREAD_CREATE_DETACHED));
-#endif /* G_THREADS_IMPL_POSIX */
 
 #ifdef HAVE_PRIORITIES
-# ifdef G_THREADS_IMPL_POSIX
   {
     struct sched_param sched;
     posix_check_cmd (pthread_attr_getschedparam (&attr, &sched));
     sched.sched_priority = g_thread_priority_map [priority];
     posix_check_cmd_prio (pthread_attr_setschedparam (&attr, &sched));
   }
-# else /* G_THREADS_IMPL_DCE */
-  posix_check_cmd_prio
-    (pthread_attr_setprio (&attr, g_thread_priority_map [priority]));
-# endif /* G_THREADS_IMPL_DCE */
 #endif /* HAVE_PRIORITIES */
   ret = posix_error (pthread_create (thread, &attr,
 				     (void* (*)(void*))thread_func, arg));
@@ -353,11 +311,6 @@ g_thread_create_posix_impl (GThreadFunc thread_func,
     }
 
   posix_check_err (ret, "pthread_create");
-
-#ifdef G_THREADS_IMPL_DCE
-  if (!joinable)
-    posix_check_cmd (pthread_detach (thread));
-#endif /* G_THREADS_IMPL_DCE */
 }
 
 static void
@@ -385,7 +338,6 @@ g_thread_set_priority_posix_impl (gpointer thread, GThreadPriority priority)
   g_return_if_fail (priority >= G_THREAD_PRIORITY_LOW);
   g_return_if_fail (priority <= G_THREAD_PRIORITY_URGENT);
 #ifdef HAVE_PRIORITIES
-# ifdef G_THREADS_IMPL_POSIX
   {
     struct sched_param sched;
     int policy;
@@ -395,10 +347,6 @@ g_thread_set_priority_posix_impl (gpointer thread, GThreadPriority priority)
     posix_check_cmd_prio (pthread_setschedparam (*(pthread_t*)thread, policy,
 						 &sched));
   }
-# else /* G_THREADS_IMPL_DCE */
-  posix_check_cmd_prio (pthread_setprio (*(pthread_t*)thread,
-					 g_thread_priority_map [priority]));
-# endif
 #endif /* HAVE_PRIORITIES */
 }
 



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