diff options
author | Rickard Green <[email protected]> | 2015-09-09 18:19:46 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2015-09-09 18:19:46 +0200 |
commit | 962797287a5e7a93713a0ce9d60cdc92098ff772 (patch) | |
tree | ce4bc93172d047c54c6338832bd3d492f9eb8173 /erts/include/internal | |
parent | ddd1acec5100f5bcc96b29f09b80edd717746edf (diff) | |
parent | 79da6e851e98729d103979ba466d47f4fa4421b2 (diff) | |
download | otp-962797287a5e7a93713a0ce9d60cdc92098ff772.tar.gz otp-962797287a5e7a93713a0ce9d60cdc92098ff772.tar.bz2 otp-962797287a5e7a93713a0ce9d60cdc92098ff772.zip |
Merge branch 'maint'
* maint:
Add configure switch --disable-saved-compile-time
Fix ethread events with timeout
Improve choice of clock sources at build time
Diffstat (limited to 'erts/include/internal')
-rw-r--r-- | erts/include/internal/pthread/ethr_event.h | 11 | ||||
-rw-r--r-- | erts/include/internal/win/ethr_event.h | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/erts/include/internal/pthread/ethr_event.h b/erts/include/internal/pthread/ethr_event.h index 74cfa68e16..deb4b29686 100644 --- a/erts/include/internal/pthread/ethr_event.h +++ b/erts/include/internal/pthread/ethr_event.h @@ -83,12 +83,22 @@ ETHR_INLINE_FUNC_NAME_(ethr_event_reset)(ethr_event *e) #elif defined(ETHR_PTHREADS) /* --- Posix mutex/cond pipe/select implementation of events ---------------- */ +#if defined(__APPLE__) && defined(__MACH__) && !defined(__DARWIN__) +# define __DARWIN__ 1 +#endif + +#ifdef __DARWIN__ +typedef struct ethr_event_fdsets___ ethr_event_fdsets__; +#endif typedef struct { ethr_atomic32_t state; pthread_mutex_t mtx; pthread_cond_t cnd; int fd[2]; +#ifdef __DARWIN__ + ethr_event_fdsets__ *fdsets; +#endif } ethr_event; #define ETHR_EVENT_OFF_WAITER_SELECT__ ((ethr_sint32_t) -2) @@ -148,6 +158,7 @@ ETHR_INLINE_FUNC_NAME_(ethr_event_reset)(ethr_event *e) #endif int ethr_event_init(ethr_event *e); +int ethr_event_prepare_timed(ethr_event *e); int ethr_event_destroy(ethr_event *e); int ethr_event_wait(ethr_event *e); int ethr_event_swait(ethr_event *e, int spincount); diff --git a/erts/include/internal/win/ethr_event.h b/erts/include/internal/win/ethr_event.h index bf110e10f9..458565b9ea 100644 --- a/erts/include/internal/win/ethr_event.h +++ b/erts/include/internal/win/ethr_event.h @@ -56,6 +56,7 @@ ETHR_INLINE_FUNC_NAME_(ethr_event_reset)(ethr_event *e) #endif int ethr_event_init(ethr_event *e); +int ethr_event_prepare_timed(ethr_event *e); int ethr_event_destroy(ethr_event *e); int ethr_event_wait(ethr_event *e); int ethr_event_swait(ethr_event *e, int spincount); |