added a new check for pthread_mutex_timedlock() into configure.ac
This commit is contained in:
		
							
								
								
									
										46
									
								
								qse/configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										46
									
								
								qse/configure
									
									
									
									
										vendored
									
									
								
							| @ -19902,6 +19902,52 @@ fi | |||||||
| done | 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 "$as_me:${as_lineno-$LINENO}: checking for main in -lunicows" >&5 | ||||||
| $as_echo_n "checking for main in -lunicows... " >&6; } | $as_echo_n "checking for main in -lunicows... " >&6; } | ||||||
| if ${ac_cv_lib_unicows_main+:} false; then : | if ${ac_cv_lib_unicows_main+:} false; then : | ||||||
|  | |||||||
| @ -255,6 +255,11 @@ fi | |||||||
|  |  | ||||||
| AC_CHECK_FUNCS([kqueue kqueue1 kevent]) | 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 check is the import library for unicows.dll exists | ||||||
| dnl this check doesn't look for a particular symbol | dnl this check doesn't look for a particular symbol | ||||||
| dnl but for the symbol 'main' since i want to check  | 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. */ | /* Define if you have POSIX threads libraries and header files. */ | ||||||
| #undef HAVE_PTHREAD | #undef HAVE_PTHREAD | ||||||
|  |  | ||||||
|  | /* pthreads has pthread_mutex_timedlock() */ | ||||||
|  | #undef HAVE_PTHREAD_MUTEX_TIMEDLOCK | ||||||
|  |  | ||||||
| /* Have PTHREAD_PRIO_INHERIT. */ | /* Have PTHREAD_PRIO_INHERIT. */ | ||||||
| #undef 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 | #else | ||||||
|  |  | ||||||
|  | 	/* if pthread_mutex_timedlock() isn't available, don't honor the waiting time. */ | ||||||
|  | 	#if defined(HAVE_PTHREAD_MUTEX_TIMEDLOCK) | ||||||
| 	if (waiting_time) | 	if (waiting_time) | ||||||
| 	{ | 	{ | ||||||
| 		qse_ntime_t t; | 		qse_ntime_t t; | ||||||
| @ -226,8 +229,12 @@ int qse_mtx_lock (qse_mtx_t* mtx, const qse_ntime_t* waiting_time) | |||||||
| 	} | 	} | ||||||
| 	else | 	else | ||||||
| 	{ | 	{ | ||||||
|  | 	#endif | ||||||
| 		if (pthread_mutex_lock ((pthread_mutex_t*)&mtx->hnd) != 0) return -1; | 		if (pthread_mutex_lock ((pthread_mutex_t*)&mtx->hnd) != 0) return -1; | ||||||
|  |  | ||||||
|  | 	#if defined(HAVE_PTHREAD_MUTEX_TIMEDLOCK) | ||||||
| 	} | 	} | ||||||
|  | 	#endif | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| 	return 0; | 	return 0; | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user