added a new check for pthread_mutex_timedlock() into configure.ac
This commit is contained in:
parent
dc53a74542
commit
70f8765ada
46
qse/configure
vendored
46
qse/configure
vendored
@ -19902,6 +19902,52 @@ fi
|
||||
done
|
||||
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_mutex_timedlock in -lpthread" >&5
|
||||
$as_echo_n "checking for pthread_mutex_timedlock in -lpthread... " >&6; }
|
||||
if ${ac_cv_lib_pthread_pthread_mutex_timedlock+:} false; then :
|
||||
$as_echo_n "(cached) " >&6
|
||||
else
|
||||
ac_check_lib_save_LIBS=$LIBS
|
||||
LIBS="-lpthread $LIBS"
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
/* end confdefs.h. */
|
||||
|
||||
/* Override any GCC internal prototype to avoid an error.
|
||||
Use char because int might match the return type of a GCC
|
||||
builtin and then its argument prototype would still apply. */
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
#endif
|
||||
char pthread_mutex_timedlock ();
|
||||
int
|
||||
main ()
|
||||
{
|
||||
return pthread_mutex_timedlock ();
|
||||
;
|
||||
return 0;
|
||||
}
|
||||
_ACEOF
|
||||
if ac_fn_c_try_link "$LINENO"; then :
|
||||
ac_cv_lib_pthread_pthread_mutex_timedlock=yes
|
||||
else
|
||||
ac_cv_lib_pthread_pthread_mutex_timedlock=no
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
LIBS=$ac_check_lib_save_LIBS
|
||||
fi
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_mutex_timedlock" >&5
|
||||
$as_echo "$ac_cv_lib_pthread_pthread_mutex_timedlock" >&6; }
|
||||
if test "x$ac_cv_lib_pthread_pthread_mutex_timedlock" = xyes; then :
|
||||
|
||||
|
||||
$as_echo "#define HAVE_PTHREAD_MUTEX_TIMEDLOCK 1" >>confdefs.h
|
||||
|
||||
|
||||
fi
|
||||
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lunicows" >&5
|
||||
$as_echo_n "checking for main in -lunicows... " >&6; }
|
||||
if ${ac_cv_lib_unicows_main+:} false; then :
|
||||
|
@ -255,6 +255,11 @@ fi
|
||||
|
||||
AC_CHECK_FUNCS([kqueue kqueue1 kevent])
|
||||
|
||||
|
||||
AC_CHECK_LIB([pthread], [pthread_mutex_timedlock], [
|
||||
AC_DEFINE([HAVE_PTHREAD_MUTEX_TIMEDLOCK],1,[pthreads has pthread_mutex_timedlock()])
|
||||
])
|
||||
|
||||
dnl check is the import library for unicows.dll exists
|
||||
dnl this check doesn't look for a particular symbol
|
||||
dnl but for the symbol 'main' since i want to check
|
||||
|
@ -467,6 +467,9 @@
|
||||
/* Define if you have POSIX threads libraries and header files. */
|
||||
#undef HAVE_PTHREAD
|
||||
|
||||
/* pthreads has pthread_mutex_timedlock() */
|
||||
#undef HAVE_PTHREAD_MUTEX_TIMEDLOCK
|
||||
|
||||
/* Have PTHREAD_PRIO_INHERIT. */
|
||||
#undef HAVE_PTHREAD_PRIO_INHERIT
|
||||
|
||||
|
@ -212,6 +212,9 @@ int qse_mtx_lock (qse_mtx_t* mtx, const qse_ntime_t* waiting_time)
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
/* if pthread_mutex_timedlock() isn't available, don't honor the waiting time. */
|
||||
#if defined(HAVE_PTHREAD_MUTEX_TIMEDLOCK)
|
||||
if (waiting_time)
|
||||
{
|
||||
qse_ntime_t t;
|
||||
@ -226,9 +229,13 @@ int qse_mtx_lock (qse_mtx_t* mtx, const qse_ntime_t* waiting_time)
|
||||
}
|
||||
else
|
||||
{
|
||||
#endif
|
||||
if (pthread_mutex_lock ((pthread_mutex_t*)&mtx->hnd) != 0) return -1;
|
||||
|
||||
#if defined(HAVE_PTHREAD_MUTEX_TIMEDLOCK)
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user