aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_threads.h
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2015-09-09 18:16:04 +0200
committerRickard Green <[email protected]>2015-09-09 18:16:04 +0200
commitfff7daa154a1b96b3e11d74bd2d60fc3a41aa832 (patch)
tree4c7213260ecc92a0f4ab34c1129fef478872f029 /erts/emulator/beam/erl_threads.h
parent59911612aec5f18b099dbc518089dd3ce48fdd97 (diff)
parent5a02ed2f3505f5ed3282c6b43963e19e63e49905 (diff)
downloadotp-fff7daa154a1b96b3e11d74bd2d60fc3a41aa832.tar.gz
otp-fff7daa154a1b96b3e11d74bd2d60fc3a41aa832.tar.bz2
otp-fff7daa154a1b96b3e11d74bd2d60fc3a41aa832.zip
Merge branch 'rickard/event-tmo/OTP-12954' into maint
* rickard/event-tmo/OTP-12954: Fix ethread events with timeout
Diffstat (limited to 'erts/emulator/beam/erl_threads.h')
-rw-r--r--erts/emulator/beam/erl_threads.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_threads.h b/erts/emulator/beam/erl_threads.h
index 5347979372..34f91e2ec8 100644
--- a/erts/emulator/beam/erl_threads.h
+++ b/erts/emulator/beam/erl_threads.h
@@ -649,6 +649,7 @@ ERTS_GLB_INLINE void erts_tsd_set(erts_tsd_key_t key, void *value);
ERTS_GLB_INLINE void * erts_tsd_get(erts_tsd_key_t key);
ERTS_GLB_INLINE erts_tse_t *erts_tse_fetch(void);
ERTS_GLB_INLINE void erts_tse_return(erts_tse_t *ep);
+ERTS_GLB_INLINE void erts_tse_prepare_timed(erts_tse_t *ep);
ERTS_GLB_INLINE void erts_tse_set(erts_tse_t *ep);
ERTS_GLB_INLINE void erts_tse_reset(erts_tse_t *ep);
ERTS_GLB_INLINE int erts_tse_wait(erts_tse_t *ep);
@@ -3461,6 +3462,15 @@ ERTS_GLB_INLINE void erts_tse_return(erts_tse_t *ep)
#endif
}
+ERTS_GLB_INLINE void erts_tse_prepare_timed(erts_tse_t *ep)
+{
+#ifdef USE_THREADS
+ int res = ethr_event_prepare_timed(&((ethr_ts_event *) ep)->event);
+ if (res != 0)
+ erts_thr_fatal_error(res, "prepare timed");
+#endif
+}
+
ERTS_GLB_INLINE void erts_tse_set(erts_tse_t *ep)
{
#ifdef USE_THREADS