aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include/alMain.h
diff options
context:
space:
mode:
Diffstat (limited to 'OpenAL32/Include/alMain.h')
-rw-r--r--OpenAL32/Include/alMain.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index 2fa79574..bc6c6d8b 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -28,6 +28,7 @@ typedef DWORD tls_type;
#else
+#include <unistd.h>
#include <assert.h>
#include <pthread.h>
#ifdef HAVE_PTHREAD_NP_H
@@ -91,13 +92,22 @@ static inline void DeleteCriticalSection(CRITICAL_SECTION *cs)
* as opposed to the actual time. */
static inline ALuint timeGetTime(void)
{
- struct timeval tv;
int ret;
+#ifdef _POSIX_TIMERS
+ struct timespec ts;
+
+ ret = clock_gettime(CLOCK_REALTIME, &ts);
+ assert(ret == 0);
+
+ return ts.tv_nsec/1000000 + ts.tv_sec*1000;
+#else
+ struct timeval tv;
ret = gettimeofday(&tv, NULL);
assert(ret == 0);
return tv.tv_usec/1000 + tv.tv_sec*1000;
+#endif
}
static inline void Sleep(ALuint t)