You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by nd...@apache.org on 2009/05/15 04:12:20 UTC
svn commit: r774985 -
/harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/thread/unix/thrdsup.h
Author: ndbeyer
Date: Fri May 15 02:12:19 2009
New Revision: 774985
URL: http://svn.apache.org/viewvc?rev=774985&view=rev
Log:
add checks for MACOSX and inline a define
Modified:
harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/thread/unix/thrdsup.h
Modified: harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/thread/unix/thrdsup.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/thread/unix/thrdsup.h?rev=774985&r1=774984&r2=774985&view=diff
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/thread/unix/thrdsup.h (original)
+++ harmony/enhanced/classlib/trunk/modules/portlib/src/main/native/thread/unix/thrdsup.h Fri May 15 02:12:19 2009
@@ -26,7 +26,7 @@
#include <setjmp.h>
#include "hycomp.h"
-#if (defined(LINUX))
+#if defined(LINUX) || defined(MACOSX)
#include <sys/time.h>
#endif
@@ -38,7 +38,7 @@
#define WRAPPER_TYPE void*
typedef void *WRAPPER_ARG;
#define WRAPPER_RETURN() return NULL
-#if defined(LINUX) || defined(FREEBSD)
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX)
#include <semaphore.h>
typedef sem_t OSSEMAPHORE;
#else
@@ -73,9 +73,7 @@
#define HYDIV div
/* do we really need nanosecond clock accuracy even on platforms which support gettime? */
-#define TIMEOUT_CLOCK CLOCK_REALTIME
-
-#if (defined(LINUX))
+#if defined(LINUX) || defined(MACOSX)
#define SETUP_TIMEOUT(ts_, millis, nanos) { \
struct timeval tv_; \
HYDIV_T secs_ = HYDIV(millis, 1000); \
@@ -107,7 +105,7 @@
#define SETUP_TIMEOUT(ts_, millis, nanos) { \
HYDIV_T secs_ = HYDIV(millis, 1000); \
int nanos_ = secs_.rem * 1000000 + nanos; \
- clock_gettime(TIMEOUT_CLOCK, &ts_); \
+ clock_gettime(CLOCK_REALTIME, &ts_); \
nanos_ += ts_.tv_nsec; \
if (nanos_ >= 1000000000) { \
ts_.tv_sec += secs_.quot + 1; \
@@ -142,7 +140,7 @@
#define THREAD_SELF() (pthread_self())
/* THREAD_YIELD */
-#if defined(LINUX) || defined(FREEBSD)
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX)
#define THREAD_YIELD() (sched_yield())
#endif
@@ -202,54 +200,54 @@
#define THREAD_SET_PRIORITY(thread, priority) set_pthread_priority((thread), (priority))
/* SEM_CREATE */
-#if defined(LINUX) || defined(FREEBSD)
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX)
#define SEM_CREATE(initValue) thread_malloc(NULL, sizeof(OSSEMAPHORE))
#else
#define SEM_CREATE(initValue)
#endif
/* SEM_INIT */
-#if defined(LINUX) || defined(FREEBSD)
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX)
#define SEM_INIT(sm, pshrd, inval) (sem_init((sem_t*)sm, pshrd, inval))
#else
#define SEM_INIT(sm,pshrd,inval)
#endif
/* SEM_DESTROY */
-#if defined(LINUX) || defined(FREEBSD)
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX)
#define SEM_DESTROY(sm) (sem_destroy((sem_t*)sm))
#else
#define SEM_DESTROY(sm)
#endif
/* SEM_FREE */
-#if defined(LINUX) || defined(FREEBSD)
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX)
#define SEM_FREE(s) thread_free(NULL, (sem_t*)s);
#endif
/* SEM_POST */
-#if defined(LINUX) || defined(FREEBSD)
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX)
#define SEM_POST(smP) (sem_post((sem_t*)smP))
#else
#define SEM_POST(sm)
#endif
/* SEM_WAIT */
-#if defined(LINUX) || defined(FREEBSD)
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX)
#define SEM_WAIT(smP) (sem_wait((sem_t*)smP))
#else
#define SEM_WAIT(sm)
#endif
/* SEM_TRYWAIT */
-#if defined(LINUX) || defined(FREEBSD)
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX)
#define SEM_TRYWAIT(smP) (sem_trywait(smP))
#else
#define SEM_TRYWAIT(sm)
#endif
/* SEM_GETVALUE */
-#if defined(LINUX) || defined(FREEBSD)
+#if defined(LINUX) || defined(FREEBSD) || defined(MACOSX)
#define SEM_GETVALUE(smP, intP) (sem_getvalue(smP, intP))
#else
#define SEM_GETVALUE(sm)