diff options
author | Rickard Green <[email protected]> | 2012-08-02 17:33:46 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2012-08-02 17:33:46 +0200 |
commit | a8eb459c1dd006ad73d5cb0f6b2a43067ec1fe5a (patch) | |
tree | 39b6cab8c3e07b0d82f6f51f005f3dcface61692 | |
parent | 3730e28ad736f0538141d4474e0038a9cc48df71 (diff) | |
download | otp-a8eb459c1dd006ad73d5cb0f6b2a43067ec1fe5a.tar.gz otp-a8eb459c1dd006ad73d5cb0f6b2a43067ec1fe5a.tar.bz2 otp-a8eb459c1dd006ad73d5cb0f6b2a43067ec1fe5a.zip |
Fix bug scheduling free processes
-rw-r--r-- | erts/emulator/beam/erl_process.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c index ba46b9011d..e7c8e0541f 100644 --- a/erts/emulator/beam/erl_process.c +++ b/erts/emulator/beam/erl_process.c @@ -4547,7 +4547,9 @@ schedule_process(Process *p, erts_aint32_t state, int active_enq) while (1) { erts_aint32_t e; n = e = a; - ASSERT(!(a & ERTS_PSFLG_FREE)); + + if (a & ERTS_PSFLG_FREE) + return; /* We don't want to schedule free processes... */ n |= ERTS_PSFLG_ACTIVE; if (!(a & (ERTS_PSFLG_SUSPENDED|ERTS_PSFLG_RUNNING))) n |= ERTS_PSFLG_IN_RUNQ; |