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 | ||||
|  | ||||
|  | ||||
|  | ||||
| { $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,8 +229,12 @@ 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; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user