diff options
author | Sverker Eriksson <[email protected]> | 2017-11-23 15:07:16 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2017-11-23 15:07:16 +0100 |
commit | 754afa1d10e32d2e50d0a8b5ddf316037ba9d6fc (patch) | |
tree | af71b76a330eab11ee9b4a208bbecf74f06532f2 /erts/emulator/beam/external.c | |
parent | fa3906ff8494f0c6627191269c6062f309abe984 (diff) | |
parent | 8ed0d75c186d9da24bd6cfb85732487b17a3b054 (diff) | |
download | otp-754afa1d10e32d2e50d0a8b5ddf316037ba9d6fc.tar.gz otp-754afa1d10e32d2e50d0a8b5ddf316037ba9d6fc.tar.bz2 otp-754afa1d10e32d2e50d0a8b5ddf316037ba9d6fc.zip |
Merge branch 'sverker/async-auto-connect/OTP-14370' AGAIN
Diffstat (limited to 'erts/emulator/beam/external.c')
-rw-r--r-- | erts/emulator/beam/external.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/erts/emulator/beam/external.c b/erts/emulator/beam/external.c index f2e6399ad7..9cc5e71afa 100644 --- a/erts/emulator/beam/external.c +++ b/erts/emulator/beam/external.c @@ -383,6 +383,21 @@ Sint erts_encode_ext_dist_header_finalize(ErtsDistOutputBuf* ob, */ ASSERT(ep[0] == SMALL_TUPLE_EXT || ep[0] == LARGE_TUPLE_EXT); + if (~dflags & (DFLAG_DIST_MONITOR | DFLAG_DIST_MONITOR_NAME) + && ep[0] == SMALL_TUPLE_EXT + && ep[1] == 4 + && ep[2] == SMALL_INTEGER_EXT + && (ep[3] == DOP_MONITOR_P || + ep[3] == DOP_MONITOR_P_EXIT || + ep[3] == DOP_DEMONITOR_P)) { + /* + * Receiver does not support process monitoring. + * Suppress monitor control msg (see erts_dsig_send_monitor) + * by converting it to an empty (tick) packet. + */ + ob->ext_endp = ob->extp; + return reds; + } if (~dflags & (DFLAG_BIT_BINARIES | DFLAG_EXPORT_PTR_TAG | DFLAG_DIST_HDR_ATOM_CACHE)) { reds = transcode_dist_obuf(ob, dep, dflags, reds); |