aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_message.c
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2014-08-18 13:03:35 +0200
committerRickard Green <[email protected]>2014-08-22 15:46:31 +0200
commit05c183c014c658810fc5a3391429eba9db14ac8f (patch)
treeeadc2fefd919195c0a9c4d0401043c49185d0fbe /erts/emulator/beam/erl_message.c
parent88bf8f4b00e424c0b850eb5622bd10828e85444a (diff)
downloadotp-05c183c014c658810fc5a3391429eba9db14ac8f.tar.gz
otp-05c183c014c658810fc5a3391429eba9db14ac8f.tar.bz2
otp-05c183c014c658810fc5a3391429eba9db14ac8f.zip
Ensure "runnable proc" trace messages are not sent out of order
Diffstat (limited to 'erts/emulator/beam/erl_message.c')
-rw-r--r--erts/emulator/beam/erl_message.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_message.c b/erts/emulator/beam/erl_message.c
index 59a677a12c..8870fac7d9 100644
--- a/erts/emulator/beam/erl_message.c
+++ b/erts/emulator/beam/erl_message.c
@@ -415,7 +415,13 @@ erts_queue_dist_message(Process *rcvr,
if (!(*rcvr_locks & ERTS_PROC_LOCK_MSGQ))
erts_smp_proc_unlock(rcvr, ERTS_PROC_LOCK_MSGQ);
- erts_proc_notify_new_message(rcvr);
+ erts_proc_notify_new_message(rcvr,
+#ifdef ERTS_SMP
+ *rcvr_locks
+#else
+ 0
+#endif
+ );
}
}
@@ -542,7 +548,13 @@ queue_message(Process *c_p,
if (locked_msgq)
erts_smp_proc_unlock(receiver, ERTS_PROC_LOCK_MSGQ);
- erts_proc_notify_new_message(receiver);
+ erts_proc_notify_new_message(receiver,
+#ifdef ERTS_SMP
+ *receiver_locks
+#else
+ 0
+#endif
+ );
#ifndef ERTS_SMP
ERTS_HOLE_CHECK(receiver);