diff options
author | Rickard Green <[email protected]> | 2010-02-05 00:18:27 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2010-02-05 00:18:27 +0000 |
commit | fac0d934c19be55a135e9d914ccc1f09d247dbb4 (patch) | |
tree | b110848d1c4c53fc20140539a453ca472bf10230 /erts/emulator/beam | |
parent | fad1a1523c0983c940376fb7a3381154cf688643 (diff) | |
download | otp-fac0d934c19be55a135e9d914ccc1f09d247dbb4.tar.gz otp-fac0d934c19be55a135e9d914ccc1f09d247dbb4.tar.bz2 otp-fac0d934c19be55a135e9d914ccc1f09d247dbb4.zip |
Fixed erroneous assertion.
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r-- | erts/emulator/beam/erl_port_task.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_port_task.c b/erts/emulator/beam/erl_port_task.c index fff51b5f27..0b6bb0d8e9 100644 --- a/erts/emulator/beam/erl_port_task.c +++ b/erts/emulator/beam/erl_port_task.c @@ -601,6 +601,15 @@ erts_port_task_schedule(Eterm id, break; } +#ifndef ERTS_SMP + /* + * When (!enq_port && !pp->sched.exe_taskq) is true in the smp case, + * the port might not be in the run queue. If this is the case, another + * thread is in the process of enqueueing the port. This very seldom + * occur, but do occur and is a valid scenario. Debug info showing this + * enqueue in progress must be introduced before we can enable (modified + * versions of these) assertions in the smp case again. + */ #if defined(HARD_DEBUG) if (pp->sched.exe_taskq || enq_port) ERTS_PT_CHK_NOT_IN_PORTQ(runq, pp); @@ -612,6 +621,7 @@ erts_port_task_schedule(Eterm id, ASSERT(pp->sched.prev || runq->ports.start == pp); } #endif +#endif if (!enq_port) { ERTS_PT_CHK_PRES_PORTQ(runq, pp); |