diff options
author | Rickard Green <[email protected]> | 2018-09-06 13:33:02 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2018-09-06 13:33:02 +0200 |
commit | 66354420943f2fdc087f1d6f5420e4efb82a3a9e (patch) | |
tree | ca1312e0fa580686c321cb85650185f52fe8028d | |
parent | 22c94c8d9b10efbb65e12755ecf73d8f30acfb8d (diff) | |
parent | 6f44c787bd543dbf0f0d7a02baae175e822d5802 (diff) | |
download | otp-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.c | 2 |
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; /* |