diff options
author | Rickard Green <[email protected]> | 2018-04-27 15:08:01 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2018-04-27 15:08:01 +0200 |
commit | 5d2d5678b06770275ce20e333166e4269150f138 (patch) | |
tree | 50319a2dab1da0f0b66ebf2a1f7741363213c11e | |
parent | 48d18d5c6c41833d115a46d5086826d399715796 (diff) | |
download | otp-5d2d5678b06770275ce20e333166e4269150f138.tar.gz otp-5d2d5678b06770275ce20e333166e4269150f138.tar.bz2 otp-5d2d5678b06770275ce20e333166e4269150f138.zip |
Fix scheduled process_info() 'status' request
-rw-r--r-- | erts/emulator/beam/erl_proc_sig_queue.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/erts/emulator/beam/erl_proc_sig_queue.c b/erts/emulator/beam/erl_proc_sig_queue.c index fc3a2fe3c4..af4707c3d1 100644 --- a/erts/emulator/beam/erl_proc_sig_queue.c +++ b/erts/emulator/beam/erl_proc_sig_queue.c @@ -2430,18 +2430,6 @@ handle_process_info(Process *c_p, ErtsSigRecvTracing *tracing, *c_p->sig_qs.last = NULL; } - if (!pisig->common.specific.next) { - /* - * No more signals in middle queue... - * - * Process-info 'status' needs sig-q - * process flag to be updated in order - * to show accurate result... - */ - erts_atomic32_read_band_nob(&c_p->state, - ~ERTS_PSFLG_SIG_Q); - } - #ifdef ERTS_PROC_SIG_HARD_DEBUG_SIGQ_MSG_LEN { Sint len; @@ -2455,8 +2443,20 @@ handle_process_info(Process *c_p, ErtsSigRecvTracing *tracing, #endif } } - if (is_alive) + if (is_alive) { + if (!pisig->common.specific.next) { + /* + * No more signals in middle queue... + * + * Process-info 'status' needs sig-q + * process flag to be updated in order + * to show accurate result... + */ + erts_atomic32_read_band_nob(&c_p->state, + ~ERTS_PSFLG_SIG_Q); + } remove_nm_sig(c_p, sig, next_nm_sig); + } rp = erts_proc_lookup(pisig->requester); ASSERT(c_p != rp); |