aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/beam_emu.c
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2016-08-12 14:07:05 +0200
committerRickard Green <[email protected]>2016-08-12 14:07:05 +0200
commit3e30322d21066ccbd522a7328b455f57d62b94d0 (patch)
treeb80c6cdd208ef06d229d34991221e466cc72be02 /erts/emulator/beam/beam_emu.c
parent240846e5dc852eb6af7e2047d1dd757960780244 (diff)
parent49722eb3e32b92563e576283d84531797c2a3627 (diff)
downloadotp-3e30322d21066ccbd522a7328b455f57d62b94d0.tar.gz
otp-3e30322d21066ccbd522a7328b455f57d62b94d0.tar.bz2
otp-3e30322d21066ccbd522a7328b455f57d62b94d0.zip
Merge branch 'maint'
* maint: Updated OTP version Prepare release Avoid segfault when printing slogan after crashdumping Fix race causing lost wakeup on receive-after timeout Conflicts: OTP_VERSION
Diffstat (limited to 'erts/emulator/beam/beam_emu.c')
-rw-r--r--erts/emulator/beam/beam_emu.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/erts/emulator/beam/beam_emu.c b/erts/emulator/beam/beam_emu.c
index 757b69787a..6100c6c923 100644
--- a/erts/emulator/beam/beam_emu.c
+++ b/erts/emulator/beam/beam_emu.c
@@ -2161,7 +2161,10 @@ void process_main(void)
c_p->i = (BeamInstr *) Arg(0); /* L1 */
SWAPOUT;
c_p->arity = 0;
- erts_smp_atomic32_read_band_relb(&c_p->state, ~ERTS_PSFLG_ACTIVE);
+
+ if (!ERTS_PTMR_IS_TIMED_OUT(c_p))
+ erts_smp_atomic32_read_band_relb(&c_p->state,
+ ~ERTS_PSFLG_ACTIVE);
ASSERT(!ERTS_PROC_IS_EXITING(c_p));
erts_smp_proc_unlock(c_p, ERTS_PROC_LOCKS_MSG_RECEIVE);
c_p->current = NULL;