aboutsummaryrefslogtreecommitdiffstats
path: root/erts/preloaded/src/socket.erl
diff options
context:
space:
mode:
Diffstat (limited to 'erts/preloaded/src/socket.erl')
-rw-r--r--erts/preloaded/src/socket.erl7
1 files changed, 6 insertions, 1 deletions
diff --git a/erts/preloaded/src/socket.erl b/erts/preloaded/src/socket.erl
index fbfd1903a1..96dc89bd9e 100644
--- a/erts/preloaded/src/socket.erl
+++ b/erts/preloaded/src/socket.erl
@@ -984,6 +984,7 @@ do_accept(LSockRef, SI, Timeout) ->
Socket = #socket{info = SocketInfo,
ref = SockRef},
{ok, Socket};
+
{error, eagain} ->
NewTimeout = next_timeout(TS, Timeout),
receive
@@ -997,7 +998,11 @@ do_accept(LSockRef, SI, Timeout) ->
nif_cancel(LSockRef, accept, AccRef),
flush_select_msgs(LSockRef, AccRef),
{error, timeout}
- end
+ end;
+
+ {error, _} = ERROR ->
+ nif_cancel(LSockRef, accept, AccRef), % Just to be on the safe side...
+ ERROR
end.