Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fixed building with pthreads and the pth library
  • Loading branch information
slouken committed Jun 13, 2002
1 parent d970356 commit ddbe293
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 6 deletions.
14 changes: 8 additions & 6 deletions configure.in
Expand Up @@ -1138,8 +1138,6 @@ CheckPTHREAD()
AC_ARG_ENABLE(pthread-sem,
[ --enable-pthread-sem use pthread semaphores [default=yes]],
, enable_pthread_sem=yes)
ac_save_cflags="$CFLAGS"
ac_save_libs="$LIBS"
case "$target" in
*-*-bsdi*)
pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
Expand Down Expand Up @@ -1187,9 +1185,12 @@ CheckPTHREAD()
pthread_lib="-lpthread"
;;
esac
CFLAGS="$CFLAGS $pthread_cflags"
LIBS="$LIBS $pthread_lib"
if test x$enable_threads = xyes -a x$enable_pthreads = xyes; then
# Save the original compiler flags and libraries
ac_save_cflags="$CFLAGS"; ac_save_libs="$LIBS"
# Add the pthread compiler flags and libraries
CFLAGS="$CFLAGS $pthread_cflags"; LIBS="$LIBS $pthread_lib"
# Check to see if we have pthread support on this system
AC_MSG_CHECKING(for pthreads)
use_pthreads=no
AC_TRY_LINK([
Expand All @@ -1201,6 +1202,9 @@ CheckPTHREAD()
use_pthreads=yes
])
AC_MSG_RESULT($use_pthreads)
# Restore the compiler flags and libraries
CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
# Do futher testing if we have pthread support...
if test x$use_pthreads = xyes; then
CFLAGS="$CFLAGS $pthread_cflags -DSDL_USE_PTHREADS"
SDL_CFLAGS="$SDL_CFLAGS $pthread_cflags"
Expand Down Expand Up @@ -1269,8 +1273,6 @@ CheckPTHREAD()
esac
fi
fi
CFLAGS="$ac_save_cflags"
LIBS="$ac_save_libs"

AC_MSG_CHECKING(whether semun is defined in /usr/include/sys/sem.h)
have_semun=no
Expand Down
10 changes: 10 additions & 0 deletions src/timer/linux/SDL_systimer.c
Expand Up @@ -41,6 +41,9 @@ static char rcsid =
#if _POSIX_THREAD_SYSCALL_SOFT
#include <pthread.h>
#endif
#ifdef ENABLE_PTH
#include <pth.h>
#endif

#if defined(DISABLE_THREADS) || defined(FORK_HACK)
#define USE_ITIMER
Expand Down Expand Up @@ -142,6 +145,12 @@ Uint32 SDL_GetTicks (void)

void SDL_Delay (Uint32 ms)
{
#ifdef ENABLE_PTH
pth_time_t tv;
tv.tv_sec = ms/1000;
tv.tv_usec = (ms%1000)*1000;
pth_nap(tv);
#else
int was_error;

#ifdef USE_NANOSLEEP
Expand Down Expand Up @@ -189,6 +198,7 @@ void SDL_Delay (Uint32 ms)
was_error = select(0, NULL, NULL, NULL, &tv);
#endif /* USE_NANOSLEEP */
} while ( was_error && (errno == EINTR) );
#endif /* ENABLE_PTH */
}

#ifdef USE_ITIMER
Expand Down

0 comments on commit ddbe293

Please sign in to comment.