aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/drivers/common/inet_drv.c
diff options
context:
space:
mode:
authorJohn Högberg <[email protected]>2017-06-27 15:54:18 +0200
committerJohn Högberg <[email protected]>2017-06-27 15:54:18 +0200
commit146656b711bef667de38f939d1f712555d9a76a8 (patch)
tree053dde2a22837d0623c20f65f73be41298a3cc63 /erts/emulator/drivers/common/inet_drv.c
parent47fc5311bc58199db92269e5dcb014656475d4c0 (diff)
parent0dced656e6871e03a153bb99af10d8710ffca7d9 (diff)
downloadotp-146656b711bef667de38f939d1f712555d9a76a8.tar.gz
otp-146656b711bef667de38f939d1f712555d9a76a8.tar.bz2
otp-146656b711bef667de38f939d1f712555d9a76a8.zip
Merge branch 'maint'
* maint: Updated OTP version Update release notes Update version numbers Fix statistics(wall_clock) and statistics(runtime) implementation fixup! erts: Cleanup dropped port tasks correctly erts: Add tests to detect port close race Add a testcase for OTP-13939/ERL-193 erts: Cleanup dropped port tasks correctly Mark socket disconnected on tcp_send_or_shutdown_error
Diffstat (limited to 'erts/emulator/drivers/common/inet_drv.c')
-rw-r--r--erts/emulator/drivers/common/inet_drv.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/erts/emulator/drivers/common/inet_drv.c b/erts/emulator/drivers/common/inet_drv.c
index 13ee935e45..fe421bfe12 100644
--- a/erts/emulator/drivers/common/inet_drv.c
+++ b/erts/emulator/drivers/common/inet_drv.c
@@ -4334,6 +4334,12 @@ static void desc_close(inet_descriptor* desc)
desc->event = INVALID_EVENT; /* closed by stop_select callback */
desc->s = INVALID_SOCKET;
desc->event_mask = 0;
+
+ /* mark as disconnected in case when socket is left lingering due to
+ * {exit_on_close, false} option in gen_tcp socket creation. Next
+ * write to socket should produce {error, enotconn} and send a
+ * message {tcp_error,#Port<>,econnreset} */
+ desc->state &= ~INET_STATE_CONNECTED;
}
}