aboutsummaryrefslogtreecommitdiffstats
path: root/m4/ost_pthread.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/ost_pthread.m4')
-rw-r--r--m4/ost_pthread.m4582
1 files changed, 0 insertions, 582 deletions
diff --git a/m4/ost_pthread.m4 b/m4/ost_pthread.m4
deleted file mode 100644
index d427c735..00000000
--- a/m4/ost_pthread.m4
+++ /dev/null
@@ -1,582 +0,0 @@
-dnl Copyright (C) 1999-2001 Open Source Telecom Corporation.
-dnl
-dnl This program is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU General Public License as published by
-dnl the Free Software Foundation; either version 2 of the License, or
-dnl (at your option) any later version.
-dnl
-dnl This program is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-dnl GNU General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU General Public License
-dnl along with this program; if not, write to the Free Software
-dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-dnl
-dnl As a special exception to the GNU General Public License, if you
-dnl distribute this file as part of a program that contains a configuration
-dnl script generated by Autoconf, you may include it under the same
-dnl distribution terms that you use for the rest of that program.
-
-AC_DEFUN([OST_LIB_PTHREAD],
-[
- AC_REQUIRE([OST_SYS_POSIX])
- AC_REQUIRE([OST_CC_SYSTIME])
- THREAD_FLAGS=""
- THREAD_LIBS=""
- ost_cv_thread_library="none"
- ost_cv_rt_library="none"
- ost_cv_cxx_mode=false
-
- AC_ARG_WITH(pthread, [ --with-pthread[=lib] using specified pthread library],
- [if test "$withval" != "" ; then ost_cv_thread_library=$withval ; fi]
- )
-
- AC_ARG_WITH(linuxthreads, [ --with-linuxthreads use linux kernel mode library],
- [ost_cv_thread_library=lthread
- AC_DEFINE(WITH_LINUXTHREADS, [1], [bsd system using linuxthreads])
- if test "$withval" != "yes" ; then
- THREAD_FLAGS="-D__USE_GNU -D__USE_UNIX98 -I$withval $THREAD_FLAGS"
- CFLAGS="-D__USE_GNU -D__USE_UNIX98 -I$withval $CFLAGS"
- else
- THREAD_FLAGS="-D__USE_GNU -D__USE_UNIX98 -I/usr/local/include/pthread/linuxthreads $THREAD_FLAGS"
- CFLAGS="-D__USE_GNU -D__USE_UNIX98 -I/usr/local/include/pthread/linuxthreads $CFLAGS"
- fi
- ])
-
- AC_CHECK_HEADERS(pthread.h, [
- AC_DEFINE(HAVE_PTHREAD_H, [1], [posix thread header])
- ost_cv_posix_threads=yes],
- ost_cv_posix_threads=no)
-
- if test $ost_cv_posix_threads = no ; then
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -pthread"
- AC_TRY_COMPILE([#include <pthread.h>],[],
- AC_DEFINE(HAVE_PTHREAD_H, [1])
- ost_cv_cxx_mode=true
- ost_cv_posix_threads=yes)
- CXXFLAGS="$SAVE_CXXFLAGS"
- AC_LANG_RESTORE
- fi
-
-AC_LANG_SAVE
-AC_LANG_CPLUSPLUS
-
- ost_cv_posix_atomic=no
- AC_CHECK_HEADERS(sys/atomic_op.h,[
- AC_DEFINE(HAVE_ATOMIC_AIX, [1], [atomic aix operations])
- ])
- AC_CHECK_HEADERS([sys/atomic.h],
- ost_cv_posix_sys_atomic=yes,
- ost_cv_posix_sys_atomic=no)
- if test $ost_cv_posix_sys_atomic = yes ; then
- AC_MSG_CHECKING([for atomic_t])
- AC_TRY_COMPILE([#include <sys/atomic.h>],
- [
- atomic_t at; at.counter = 1;
- atomic_dec_and_test(&at);
- atomic_sub(4, &at);
- atomic_inc(&at);
- atomic_add(3, &at);
- ],
- [ost_cv_posix_atomic=yes
- AC_DEFINE(HAVE_WORKING_SYS_ATOMIC_H, [1], [has usable atomic functions])],
- [ost_cv_posix_atomic=no])
- AC_MSG_RESULT($ost_cv_posix_atomic)
- fi
-
- dnl check for gcc's bits/atomicity and the atomic functions therein
- AC_CHECK_HEADERS([bits/atomicity.h],
- ost_cv_bits_atomicity=yes,
- ost_cv_bits_atomicity=no)
- if test $ost_cv_bits_atomicity = yes ; then
- AC_MSG_CHECKING([for _Atomic_word])
- AC_TRY_COMPILE([#include <bits/atomicity.h>],
- [
- _Atomic_word i = 0;
- __atomic_add(&i, 1);
- __exchange_and_add(&i, 1);
- ],
- [ost_cv_gcc_atomic=yes
- AC_DEFINE(HAVE_GCC_BITS_ATOMIC, [1], [has gcc atomic functions])],
- [ost_cv_gcc_atomic=no])
- AC_MSG_RESULT($ost_cv_gcc_atomic)
-
- AC_MSG_CHECKING([for __gnu_cxx::_Atomic_word])
- AC_TRY_COMPILE([#include <bits/atomicity.h>],
- [
- using namespace __gnu_cxx;
- _Atomic_word i = 0;
- __atomic_add(&i, 1);
- __exchange_and_add(&i, 1);
- ],
- [ost_cv_gcc_cxx_atomic=yes
- AC_DEFINE(HAVE_GCC_CXX_BITS_ATOMIC, [1],
- [has __gnu_cxx atomic functions])],
- [ost_cv_gcc_cxx_atomic=no])
- AC_MSG_RESULT($ost_cv_gcc_cxx_atomic)
- fi
-
-AC_LANG_RESTORE
-
- if test "$target" = NONE ; then
- targetdir=""
- else
- targetdir="$target"
- fi
-
- AC_CHECK_HEADERS(thread.h)
- if test "$prefix" = NONE ; then
- thrprefix="/usr/$targetdir/include"
- if test -d /usr/$targetdir/sys-include ; then
- thrprefix="$prefix/$targetdir/sys-include" ; fi
- else
- thrprefix="$prefix/$targetdir/include"
- if test -d "$prefix/$targetdir/sys-include" ; then
- thrprefix="$prefix/$targetdir/sys-include" ; fi
- fi
-
- if test ! -f $thrprefix/thread.h ; then
- thrprefix=/usr/include
- fi
-
- AC_SUBST(thrprefix)
-
- if test $ost_cv_posix_threads = yes ; then
- if test "$ost_cv_thread_library" = "none" ; then
-
- ost_cv_thread_flags=""
- for flags in -kthread -pthread -mthreads -pthreads -Kthread --threadsafe -mt ; do
-
- AC_MSG_CHECKING(whether ${CC-cc} accepts $flags)
- echo 'void f(){}' >conftest.c
- if test -z "`${CC-cc} $flags -c conftest.c 2>&1`"; then
- ost_cv_thread_flags=$flags
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- fi
- rm -f conftest*
- if test ! -z "$ost_cv_thread_flags" ; then break ; fi
- done
-# if test "$ost_cv_prog_cc_pthread" = "no" ; then
-# AC_CACHE_CHECK(whether ${CC-cc} accepts -mthreads,
-# ost_cv_prog_cc_mthreads,
-# [echo 'void f(){}' >conftest.c
-# if test -z "`${CC-cc} -mthreads -c conftest.c 2>&1`"; then
-# ost_cv_prog_cc_mthreads=yes
-# else
-# ost_cv_prog_cc_mthreads=no
-# fi
-# rm -f conftest*
-# ])
-# fi
- ost_cv_thread_library=none
- AC_CHECK_LIB(pthread, pthread_self,
- ost_cv_thread_library=pthread,
- AC_CHECK_LIB(c_r, pthread_self,
- ost_cv_thread_library=c_r,
- AC_CHECK_LIB(pthread, pthread_kill,
- ost_cv_thread_library=pthread,
- AC_CHECK_LIB(pthreads, pthread_self,
- ost_cv_thread_library=pthreads,
- AC_CHECK_LIB(thread, pthread_self,
- ost_cv_thread_library=thread)))))
-
- if test $ost_cv_thread_library = none ; then
- AC_CHECK_LIB(gthreads, pthread_self,[
- AC_CHECK_LIB(malloc, malloc)
- ost_cv_thread_library=gthreads])
- fi
- if test $ost_cv_thread_library = none ; then
- AC_CHECK_LIB(cma, pthread_self,
- ost_cv_thread_library=cma)
- fi
-
- if test $ost_cv_thread_library = none ; then
- AC_CHECK_LIB(c, pthread_self,
- ost_cv_thread_library=c)
- fi
-
- if test $ost_cv_thread_library = none ; then
- AC_MSG_ERROR(no library for posix threads found!)
- fi
- else
-# ost_cv_prog_cc_pthread=no
-# ost_cv_prog_cc_mthreads=no
- ost_cv_thread_flags=""
- fi
-
- AC_CHECK_LIB(${ost_cv_thread_library}, pthread_mach_thread_np,
- AC_DEFINE(HAVE_PTHREAD_MACH_THREAD_NP, [1], [has mach link])
- )
-
- AC_CHECK_LIB(${ost_cv_thread_library}, nanosleep,
- AC_DEFINE(HAVE_PTHREAD_NANOSLEEP, [1], [has nanosleep]),[
- AC_CHECK_LIB(posix4, nanosleep,[
- AC_DEFINE(HAVE_PTHREAD_NANOSLEEP, [1])
- THREAD_LIBS="$THREAD_LIBS -lposix4"
- ],[
- AC_CHECK_LIB(rt, nanosleep,[
- AC_DEFINE(HAVE_PTHREAD_NANOSLEEP, [1])
- ost_cv_rt_library="-lrt"])
- ])
-
- ])
-
- AC_CHECK_LIB(rt, clock_gettime,[
- ost_cv_rt_library="-lrt"
- AC_DEFINE(HAVE_HIRES_TIMER, [1], [have hires])
- ],[
- AC_CHECK_FUNCS(clock_gettime,[
- AC_DEFINE(HAVE_HIRES_TIMER, [1], [have hires])
- ])
- ])
-
- AC_CHECK_LIB(rt, mlockall,[
- AC_DEFINE(HAVE_MLOCK, [1], [have mlock])
- AC_DEFINE(HAVE_MLOCKALL, [1], [have memlockall])
- ost_cv_rt_library="-lrt"],
- [
- AC_CHECK_FUNCS(mlock)
- AC_CHECK_FUNCS(mlockall)
- ])
-
- if test "$ost_cv_rt_library" != "none" ; then
- THREAD_LIBS="$THREAD_LIBS $ost_cv_rt_library" ; fi
-
- if test ! -z "$ost_cv_thread_flags" ; then
- THREAD_LIBS="$THREAD_LIBS $ost_cv_thread_flags"
- else
- THREAD_LIBS="$THREAD_LIBS -l$ost_cv_thread_library"
- fi
-
- AC_MSG_CHECKING([if more special flags are required for pthreads])
- flag=no
- case "${host_cpu}-${host_os}" in
- *-aix* | *-freebsd*) flag="-D_THREAD_SAFE";;
- *solaris* | alpha*-osf*) flag="-D_REENTRANT";;
- esac
- AC_MSG_RESULT(${flag})
- if test "x$flag" != xno; then
- THREAD_FLAGS="$flag"
- fi
-
- AC_SUBST(THREAD_FLAGS)
- AC_SUBST(THREAD_LIBS)
-# LIBS="$THREAD_LIBS $LIBS"
- if test "$ost_cv_thread_library" != "lthread" ; then
- AC_CHECK_HEADERS(pthread_np.h)
- fi
- AC_CHECK_HEADERS(semaphore.h)
- AC_CHECK_HEADERS(sched.h)
- AC_CHECK_HEADERS(sys/sched.h)
- AC_CHECK_FUNCS(sched_getscheduler)
- AC_CACHE_CHECK([for recursive mutex type support], ost_cv_mutex_recursive,
- [
- ost_cv_mutex_recursive="none"
-
- if test "$ost_cv_cxx_mode" = true ; then
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -pthread"
- fi
-
- AC_TRY_COMPILE(
- [#include <pthread.h>],
- [
- #ifndef PTHREAD_MUTEXTYPE_RECURSIVE
- #ifdef PTHREAD_MUTEX_RECURSIVE
- #define PTHREAD_MUTEXTYPE_RECURSIVE PTHREAD_MUTEX_RECURSIVE
- #endif
- #endif
- return (int)PTHREAD_MUTEXTYPE_RECURSIVE;
- ],
- ost_cv_mutex_recursive="portable",
- [
- AC_EGREP_HEADER(PTHREAD_MUTEXTYPE_RECURSIVE_NP,pthread.h,
- ost_cv_mutex_recursive=non-portable)
- AC_EGREP_HEADER(PTHREAD_MUTEX_RECURSIVE_INITIALIZER_NP, pthread.h,
- ost_cv_mutex_recursive=lthread)
- AC_EGREP_HEADER(PTHREAD_MUTEX_RECURSIVE_NP,pthread.h,
- ost_cv_mutex_recursive=linux)
- AC_EGREP_HEADER(MUTEX_TYPE_COUNTING_FAST,pthread.h,
- ost_cv_mutex_recursive=counting)
- ])
- if test $ost_cv_mutex_recursive = "none" ; then
- if test $ost_cv_thread_library = "lthread" ; then
- ost_cv_mutex_recursive=linux
- fi
- fi
- rm -f conftest*
- ])
-
- if test $ost_cv_mutex_recursive = "none" ; then
- AC_TRY_COMPILE(
- [#include <pthread.h>],
- [return MUTEX_TYPE_COUNTING_FAST;],
- ost_cv_mutex_recursive=counting)
- fi
-
- if test "$ost_cv_cxx_mode" = true ; then
- CXXFLAGS="$SAVE_CXXFLAGS"
- AC_LANG_RESTORE
- fi
-
-
- case $ost_cv_mutex_recursive in
- non-portable)
- AC_DEFINE(PTHREAD_MUTEXTYPE_RECURSIVE,
- PTHREAD_MUTEXTYPE_RECURSIVE_NP, [mutex type])
- ;;
- linux)
- AC_DEFINE(PTHREAD_MUTEXTYPE_RECURSIVE,
- PTHREAD_MUTEX_RECURSIVE_NP)
- ;;
- counting)
- AC_DEFINE(PTHREAD_MUTEXTYPE_RECURSIVE,
- MUTEX_TYPE_COUNTING_FAST)
- ;;
- esac
-
- AC_CHECK_LIB(${ost_cv_thread_library}, pthread_mutexattr_settype,
- AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_SETTYPE, [1], [has setttype]),
- [
- AC_CHECK_LIB(${ost_cv_thread_library}, pthread_mutexattr_settype_np,
- AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_SETTYPE_NP,
- [1], [has non portable settype]))
- AC_CHECK_LIB(${ost_cv_thread_library}, pthread_mutexattr_setkind_np,
- AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_SETKIND_NP,
- [1], [has non portable setkind]))
- ]
- )
-
- ost_cv_thread_rwlock=false
- AC_CHECK_LIB(${ost_cv_thread_library}, pthread_rwlock_init,[
- ost_cv_thread_rwlock=true
- AC_DEFINE(HAVE_PTHREAD_RWLOCK, [1], [has rwlock support])])
-
- AC_CHECK_LIB(c, pread,[
- AC_DEFINE(HAVE_PREAD_PWRITE, [1], [has pwrite])],[
- AC_CHECK_LIB(${ost_cv_thread_library}, pread,[
- AC_DEFINE(HAVE_PREAD_PWRITE, [1])],[
- AC_CHECK_LIB(c_r, pread,[AC_DEFINE(HAVE_PREAD_PWRITE)])
- ])
- ])
-
- AC_CHECK_LIB(${ost_cv_thread_library}, pthread_suspend,
- AC_DEFINE(HAVE_PTHREAD_SUSPEND, [1], [has suspend]))
-
- AC_CHECK_LIB(${ost_cv_thread_library}, pthread_attr_setstacksize,
- AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE, [1], [has stack size]))
-
- AC_CHECK_LIB(${ost_cv_thread_library}, pthread_yield_np,
- AC_DEFINE(HAVE_PTHREAD_YIELD_NP, [1], [has np yield]),[
- AC_CHECK_LIB(${ost_cv_thread_library}, pthread_yield,
- AC_DEFINE(HAVE_PTHREAD_YIELD, [1], [has yield]),[
- AC_CHECK_LIB(${ost_cv_thread_library}, sched_yield,
- AC_DEFINE(HAVE_PTHREAD_SCHED_YIELD, [1], [has sched yield]))
- ])
- ])
-
- AC_CHECK_LIB(${ost_cv_thread_library}, pthread_cancel,[
- AC_DEFINE(HAVE_PTHREAD_CANCEL, [1], [has cancel])
- AC_CHECK_LIB(${ost_cv_thread_library},
- pthread_setcanceltype,
- AC_DEFINE(HAVE_PTHREAD_SETCANCELTYPE, [1], [has setcanceltype]),
- AC_CHECK_LIB($ost_cv_thread_library, pthread_setcanel,
- AC_DEFINE(HAVE_PTHREAD_SETCANCEL, [1], [has setcancel])))
- ],[
- AC_CHECK_LIB(${ost_cv_thread_library},
- pthread_setcanceltype,[
- AC_DEFINE(HAVE_PTHREAD_CANCEL)
- AC_DEFINE(HAVE_PTHREAD_SETCANCELTYPE)])
-
- ])
-
- AC_CHECK_LIB(${ost_cv_thread_library}, pthread_delay_np,
- AC_DEFINE(HAVE_PTHREAD_DELAY_NP, [1], [has non portable delay]))
-
- fi
-
- UNAME=`uname`
- if test "$UNAME" = "AIX" ; then
- AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC})
- CC=$PTHREAD_CC
- AC_DEFINE(COMMON_AIX_FIXES, [1], [aix fixes needed])
- fi
-
-AH_BOTTOM([
-#ifdef HAVE_THREAD_H
-#include "@thrprefix@/thread.h"
-#if defined(i386) && defined(__svr4__) && !defined(__sun)
-#define _THR_UNIXWARE
-#endif
-#if defined(__SVR4) && defined(__sun)
-#define _THR_SUNOS5
-#else
-#if defined(__SVR4__) && defined(__SUN__)
-#define _THR_SUNOS5
-#endif
-#endif
-#endif
-
-#ifdef HAVE_WORKING_SYS_ATOMIC_H
-#include <sys/atomic.h>
-#define HAVE_ATOMIC
-#elif defined(HAVE_ATOMIC_AIX)
-#include <sys/atomic_op.h>
-#ifndef HAVE_ATOMIC
-#define HAVE_ATOMIC
-#endif
-#endif
-
-#if defined(__cplusplus)
-#if defined(HAVE_GCC_BITS_ATOMIC) || defined(HAVE_GCC_CXX_BITS_ATOMIC)
-#include <bits/atomicity.h>
-#define HAVE_ATOMIC
-#endif
-#endif
-
-#if defined(HAVE_PTHREAD_H) && ( defined(_THREAD_SAFE) || defined(_REENTRANT) )
-
-#ifdef __QNX__
-#define __EXT_QNX
-#endif
-
-#include <pthread.h>
-
-#ifdef HAVE_PTHREAD_NP_H
-#include <pthread_np.h>
-#endif
-
-#ifdef HAVE_SEMAPHORE_H
-#include <semaphore.h>
-#endif
-#ifdef _POSIX_PRIORITY_SCHEDULING
-#ifdef HAVE_SCHED_H
-#include <sched.h>
-#else
-#ifdef HAVE_SYS_SCHED_H
-#include <sys/sched.h>
-#endif
-#endif
-#endif
-
-#define __PTHREAD_H__
-#ifndef PTHREAD_MUTEXTYPE_RECURSIVE
-#ifdef MUTEX_TYPE_COUNTING_FAST
-#define PTHREAD_MUTEXTYPE_RECURSIVE MUTEX_TYPE_COUNTING_FAST
-#endif
-#endif
-#ifndef PTHREAD_MUTEXTYPE_RECURSIVE
-#ifdef PTHREAD_MUTEX_RECURSIVE
-#define PTHREAD_MUTEXTYPE_RECURSIVE PTHREAD_MUTEX_RECURSIVE
-#endif
-#endif
-#ifndef HAVE_PTHREAD_MUTEXATTR_SETTYPE
-#if HAVE_PTHREAD_MUTEXATTR_SETKIND_NP
-#ifndef PTHREAD_MUTEXTYPE_RECURSIVE
-#define PTHREAD_MUTEXTYPE_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP
-#endif
-#define pthread_mutexattr_gettype(x, y) pthread_mutexattr_getkind_np(x, y)
-#define pthread_mutexattr_settype(x, y) pthread_mutexattr_setkind_np(x, y)
-#endif
-#if HAVE_PTHREAD_MUTEXATTR_SETTYPE_NP
-#ifndef PTHREAD_MUTEXTYPE_RECURSIVE
-#define PTHREAD_MUTEXTYPE_RECURSIVE PTHREAD_MUTEXTYPE_RECURSIVE_NP
-#endif
-#define pthread_mutexattr_settype(x, y) pthread_mutexattr_settype_np(x, y)
-#define pthread_mutexattr_gettype(x, y) pthread_mutexattr_gettype_np(x, y)
-#endif
-#endif
-
-#ifdef HAVE_PTHREAD_MACH_THREAD_NP
-#define _THR_MACH
-#endif
-
-#ifndef HAVE_PTHREAD_YIELD
-#ifdef HAVE_PTHREAD_YIELD_NP
-#define pthread_yield() pthread_yield_np()
-#define HAVE_PTHREAD_YIELD
-#endif
-#endif
-
-#ifndef HAVE_PTHREAD_YIELD
-#ifdef HAVE_PTHREAD_SCHED_YIELD
-#define pthread_yield() sched_yield()
-#define HAVE_PTHREAD_YIELD
-#endif
-#endif
-
-#ifndef HAVE_PTHREAD_DELAY
-#ifdef HAVE_PTHREAD_DELAY_NP
-#define HAVE_PTHREAD_DELAY
-#define pthread_delay(x) pthread_delay_np(x)
-#endif
-#if defined(HAVE_PTHREAD_NANOSLEEP)
-#ifndef HAVE_PTHREAD_DELAY
-#define HAVE_PTHREAD_DELAY
-#ifdef __FreeBSD__
-#ifdef __cplusplus
-extern "C" int nanosleep(const struct timespec *rqtp, struct timespec *rmtp);
-#endif
-#endif
-#define pthread_delay(x) nanosleep(x, NULL)
-#endif
-#endif
-#endif
-
-#ifdef HAVE_PTHREAD_ATTR_SETSTACK
-#ifndef PTHREAD_STACK_MIN
-#define PTHREAD_STACK_MIN 32768
-#endif
-#endif
-
-#ifndef HAVE_PTHREAD_CANCEL
-#ifdef SIGCANCEL
-#define CCXX_SIG_THREAD_CANCEL SIGCANCEL
-#else
-#define CCXX_SIG_THREAD_CANCEL SIGQUIT
-#endif
-#define pthread_cancel(x) pthread_kill(x, CCXX_SIG_THREAD_CANCEL)
-#define pthread_setcanceltype(x, y)
-#define pthread_setcancelstate(x, y)
-#endif
-
-#ifndef HAVE_PTHREAD_SETCANCELTYPE
-#ifdef HAVE_PTHREAD_SETCANCEL
-enum
-{ PTHREAD_CANCEL_ASYNCHRONOUS = CANCEL_ON,
- PTHREAD_CANCEL_DEFERRED = CANCEL_OFF};
-enum
-{ PTHREAD_CANCEL_ENABLE = CANCEL_ON,
- PTHREAD_CANCEL_DISABLE = CANCEL_OFF};
-#define pthread_setcancelstate(x, y) \
- (y == NULL) ? pthread_setcancel(x) : *y = pthread_setcancel
-#define pthread_setcanceltype(x, y) \
- (y == NULL) ? pthread_setasynccancel(x) | *y = pthread_setasynccancel(x)
-#else
-#define pthread_setcanceltype(x, y)
-#define pthread_setcancelstate(x, y)
-#endif
-#endif
-
-#ifdef _AIX
-#ifdef HAVE_PTHREAD_SUSPEND
-#undef HAVE_PTHREAD_SUSPEND
-#endif
-#endif
-
-#endif
-
-
- ])
-
-])
-