diff options
author | Sverker Eriksson <[email protected]> | 2019-02-19 15:18:17 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2019-02-19 15:18:17 +0100 |
commit | d39fd7534d8c866a06802b306d44f6723edfdab2 (patch) | |
tree | e47edfa07536148ef26a4f17f8605235da7d1fa0 /erts/emulator | |
parent | 8d6174377c97f16235cd1bb42c3a0fc783720f0e (diff) | |
parent | 80b04507b0456a73f2f2f001691cadb4cb3958e8 (diff) | |
download | otp-d39fd7534d8c866a06802b306d44f6723edfdab2.tar.gz otp-d39fd7534d8c866a06802b306d44f6723edfdab2.tar.bz2 otp-d39fd7534d8c866a06802b306d44f6723edfdab2.zip |
Merge branch 'maint'
Diffstat (limited to 'erts/emulator')
-rw-r--r-- | erts/emulator/beam/erl_process.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_process.c b/erts/emulator/beam/erl_process.c index c2799f6612..6419998702 100644 --- a/erts/emulator/beam/erl_process.c +++ b/erts/emulator/beam/erl_process.c @@ -2462,6 +2462,13 @@ handle_reap_ports(ErtsAuxWorkData *awdp, erts_aint32_t aux_work, int waiting) erts_port_lock(prt); + if (prt->common.u.alive.reg && + prt->common.u.alive.reg->name == am_heart_port) { + /* Leave heart port to not get killed before flushing is done*/ + erts_port_release(prt); + continue; + } + state = erts_atomic32_read_nob(&prt->state); if (!(state & (ERTS_PORT_SFLGS_INVALID_DRIVER_LOOKUP | ERTS_PORT_SFLG_HALT))) { |