X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fpandora_pthread.m4;h=78af2ba516637098b6c0a40b176cefe6bb56542f;hb=880439e34a123924049dd67fc59a4871d679259c;hp=92bdfc44f5e3e93f20689591d20590e6180cca62;hpb=1b18496b3d1399d90cfba1975f23aee9c747445a;p=awesomized%2Flibmemcached diff --git a/m4/pandora_pthread.m4 b/m4/pandora_pthread.m4 index 92bdfc44..78af2ba5 100644 --- a/m4/pandora_pthread.m4 +++ b/m4/pandora_pthread.m4 @@ -14,12 +14,56 @@ dnl -------------------------------------------------------------------- dnl Check for libpthread dnl -------------------------------------------------------------------- +AC_DEFUN([PANDORA_PTHREAD_YIELD],[ + AC_REQUIRE([ACX_PTHREAD]) + + save_CFLAGS="${CFLAGS}" + save_CXXFLAGS="${CXXFLAGS}" + CFLAGS="${PTHREAD_CFLAGS} ${CFLAGS}" + CXXFLAGS="${PTHREAD_CFLAGS} ${CXXFLAGS}" + dnl Some OSes like Mac OS X have that as a replacement for pthread_yield() + AC_CHECK_FUNCS(pthread_yield_np) + AC_CACHE_CHECK([if pthread_yield takes zero arguments], + [pandora_cv_pthread_yield_zero_arg], + [AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#include + ]],[[ + pthread_yield(); + ]])], + [pandora_cv_pthread_yield_zero_arg=yes], + [pandora_cv_pthread_yield_zero_arg=no])]) + AS_IF([test "$pandora_cv_pthread_yield_zero_arg" = "yes"],[ + AC_DEFINE([HAVE_PTHREAD_YIELD_ZERO_ARG], [1], + [pthread_yield that doesn't take any arguments]) + ]) + + AC_CACHE_CHECK([if pthread_yield takes one argument], + [pandora_cv_pthread_yield_one_arg], + [AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#include + ]],[[ + pthread_yield(0); + ]])], + [pandora_cv_pthread_yield_one_arg=yes], + [pandora_cv_pthread_yield_one_arg=no])]) + AS_IF([test "$pandora_cv_pthread_yield_one_arg" = "yes"],[ + AC_DEFINE([HAVE_PTHREAD_YIELD_ONE_ARG], [1], + [pthread_yield function with one argument]) + ]) + + CFLAGS="${save_CFLAGS}" + CXXFLAGS="${save_CXXFLAGS}" +]) + + AC_DEFUN([_PANDORA_SEARCH_PTHREAD],[ - ACX_PTHREAD + AC_REQUIRE([ACX_PTHREAD]) LIBS="${PTHREAD_LIBS} ${LIBS}" AM_CFLAGS="${PTHREAD_CFLAGS} ${AM_CFLAGS}" AM_CXXFLAGS="${PTHREAD_CFLAGS} ${AM_CXXFLAGS}" - CC="$PTHREAD_CC" + PANDORA_PTHREAD_YIELD ])