aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_process.c
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_process.c
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_process.c')
-rw-r--r--erts/emulator/beam/erl_process.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 7135c0475e..3b1b593d1c 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -7938,11 +7938,16 @@ sched_thread_func(void *vesdp)
ErtsThrPrgrCallbacks callbacks;
ErtsSchedulerData *esdp = vesdp;
Uint no = esdp->no;
+#ifdef ERTS_SMP
+ erts_tse_t *tse;
+#endif
erts_sched_init_time_sup(esdp);
#ifdef ERTS_SMP
- ERTS_SCHED_SLEEP_INFO_IX(no - 1)->event = erts_tse_fetch();
+ tse = erts_tse_fetch();
+ erts_tse_prepare_timed(tse);
+ ERTS_SCHED_SLEEP_INFO_IX(no - 1)->event = tse;
callbacks.arg = (void *) esdp->ssi;
callbacks.wakeup = thr_prgr_wakeup;
callbacks.prepare_wait = thr_prgr_prep_wait;