summaryrefslogtreecommitdiff
path: root/erts
diff options
context:
space:
mode:
authorRickard Green <rickard@erlang.org>2016-10-17 12:00:32 +0200
committerRickard Green <rickard@erlang.org>2016-11-22 16:21:00 +0100
commita532df810da29fcb28d142d244b6b3c812fa33ca (patch)
treeff0a26ec1c7ad80ae2a3e1817eda1f3d99f00031 /erts
parent696167d5e64365c28d626e117c136cb81e4c4028 (diff)
downloaderlang-a532df810da29fcb28d142d244b6b3c812fa33ca.tar.gz
Fix dirty scheduler process priority
Diffstat (limited to 'erts')
-rw-r--r--erts/emulator/beam/erl_process.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index bc59147c6c..59ee84d115 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -6271,7 +6271,11 @@ check_dirty_enqueue_in_prio_queue(Process *c_p,
return -1*queue;
}
- *newp |= ERTS_PSFLG_IN_RUNQ;
+ /*
+ * Enqueue using process struct.
+ */
+ *newp &= ~ERTS_PSFLGS_PRQ_PRIO_MASK;
+ *newp |= ERTS_PSFLG_IN_RUNQ | (aprio << ERTS_PSFLGS_PRQ_PRIO_OFFSET);
return queue;
}