<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jun 30, 2016 at 10:58 AM, Magnus Ottenklinger <span dir="ltr"><<a href="mailto:magnus.ottenklinger@entelios.com" target="_blank">magnus.ottenklinger@entelios.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">We stumbled over a peculiarity in the usage of ports in a TCP connection (active mode). Specifically, we encountered `einval` when writing to a socket which was closed just before. Our expectation was that the resulting error should be `{error,closed}`. The following module reproduces this on my machine (OTP 19.0). I ran the test module with `erlc test.erl && erl -s test run -noshell` as well as with `erl -smp disable +A 0 -s test run -noshell`. Both executions triggered `einval`.</blockquote></div><br></div><div class="gmail_extra">Knowing what operating system it is could help. Low level TCP isn't entirely the same thing in its response codes, even though POSIX exists. There are some things down here which are up to "interpretation" for some levels of interpretation.<br><br></div><div class="gmail_extra">It does, from your failing program, look like it is a race however. The question is if anything can be done about it.<br><br></div><div class="gmail_extra"><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">J.</div>
</div></div>