aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRickard Green <[email protected]>2018-09-06 13:33:02 +0200
committerRickard Green <[email protected]>2018-09-06 13:33:02 +0200
commit66354420943f2fdc087f1d6f5420e4efb82a3a9e (patch)
treeca1312e0fa580686c321cb85650185f52fe8028d
parent22c94c8d9b10efbb65e12755ecf73d8f30acfb8d (diff)
parent6f44c787bd543dbf0f0d7a02baae175e822d5802 (diff)
downloadotp-66354420943f2fdc087f1d6f5420e4efb82a3a9e.tar.gz
otp-66354420943f2fdc087f1d6f5420e4efb82a3a9e.tar.bz2
otp-66354420943f2fdc087f1d6f5420e4efb82a3a9e.zip
Merge branch 'maint'
* maint: Fix an endless rescheduling loop when a process is executing process_info(self(), ...)
-rw-r--r--erts/emulator/beam/erl_process.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c
index 9f3dfd6c37..0f7f1598fd 100644
--- a/erts/emulator/beam/erl_process.c
+++ b/erts/emulator/beam/erl_process.c
@@ -9641,7 +9641,7 @@ Process *erts_schedule(ErtsSchedulerData *esdp, Process *p, int calls)
if (state & ERTS_PSFLG_RUNNING_SYS) {
if (state & (ERTS_PSFLG_SIG_Q|ERTS_PSFLG_SIG_IN_Q)) {
int local_only = (!!(p->flags & F_LOCAL_SIGS_ONLY)
- & !(state & ERTS_PSFLG_SUSPENDED));
+ & !(state & (ERTS_PSFLG_SUSPENDED|ERTS_PSFLGS_DIRTY_WORK)));
if (!local_only | !!(state & ERTS_PSFLG_SIG_Q)) {
int sig_reds;
/*