aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/drivers/common
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2017-10-17 17:01:25 +0200
committerSverker Eriksson <[email protected]>2017-10-17 17:01:25 +0200
commit26797db89c0b36757eb538bb7ec2ef8b9e29746a (patch)
treee7ec397bc0a554bba2d9e108a39d8225ff34157b /erts/emulator/drivers/common
parent290c920aca365968ebaa10a63e25fd2579bce408 (diff)
parent3aaeab5fb7a259aaec66126d5d50231269e32961 (diff)
downloadotp-26797db89c0b36757eb538bb7ec2ef8b9e29746a.tar.gz
otp-26797db89c0b36757eb538bb7ec2ef8b9e29746a.tar.bz2
otp-26797db89c0b36757eb538bb7ec2ef8b9e29746a.zip
Merge branch 'sverker/dist-send-noreply-opt/OTP-14689' into maint
* sverker/dist-send-noreply-opt/OTP-14689: erts: Improve distribution send operations
Diffstat (limited to 'erts/emulator/drivers/common')
-rw-r--r--erts/emulator/drivers/common/inet_drv.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/erts/emulator/drivers/common/inet_drv.c b/erts/emulator/drivers/common/inet_drv.c
index 7b1f4a0e9c..554c48059f 100644
--- a/erts/emulator/drivers/common/inet_drv.c
+++ b/erts/emulator/drivers/common/inet_drv.c
@@ -2199,13 +2199,16 @@ static int inet_reply_ok(inet_descriptor* desc)
ErlDrvTermData caller = desc->caller;
int i = 0;
+ desc->caller = 0;
+ if (is_not_internal_pid(caller))
+ return 0;
+
i = LOAD_ATOM(spec, i, am_inet_reply);
i = LOAD_PORT(spec, i, desc->dport);
i = LOAD_ATOM(spec, i, am_ok);
i = LOAD_TUPLE(spec, i, 3);
ASSERT(i == sizeof(spec)/sizeof(*spec));
- desc->caller = 0;
return erl_drv_send_term(desc->dport, caller, spec, i);
}