summaryrefslogtreecommitdiff
path: root/erts/preloaded
diff options
context:
space:
mode:
authorMicael Karlberg <bmk@erlang.org>2019-07-08 16:34:25 +0200
committerMicael Karlberg <bmk@erlang.org>2019-07-08 16:34:25 +0200
commita8981b70f9e12e0beae931e1de6bd182c83c9df0 (patch)
tree447da64e69a3b97345e0c363c9993aa61e42ee4b /erts/preloaded
parenta7dad3b76794210d5158d873ea1421e944a7c053 (diff)
parentf8bd1d27e86b338693b72fd1bd6938876660dfcf (diff)
downloaderlang-a8981b70f9e12e0beae931e1de6bd182c83c9df0.tar.gz
Merge branch 'maint'
Diffstat (limited to 'erts/preloaded')
-rw-r--r--erts/preloaded/ebin/socket.beambin75044 -> 75584 bytes
-rw-r--r--erts/preloaded/src/socket.erl41
2 files changed, 39 insertions, 2 deletions
diff --git a/erts/preloaded/ebin/socket.beam b/erts/preloaded/ebin/socket.beam
index 134b4eac13..c4680c2baa 100644
--- a/erts/preloaded/ebin/socket.beam
+++ b/erts/preloaded/ebin/socket.beam
Binary files differ
diff --git a/erts/preloaded/src/socket.erl b/erts/preloaded/src/socket.erl
index ae1ffdb4ac..e9a76dc1e9 100644
--- a/erts/preloaded/src/socket.erl
+++ b/erts/preloaded/src/socket.erl
@@ -26,9 +26,13 @@
%% Administrative and "global" utility functions
-export([
on_load/0, on_load/1,
+
+ ensure_sockaddr/1,
+
+ debug/1,
+ %% command/1,
info/0,
- supports/0, supports/1, supports/2, supports/3,
- ensure_sockaddr/1
+ supports/0, supports/1, supports/2, supports/3
]).
-export([
@@ -63,6 +67,8 @@
select_ref/0,
select_info/0,
+ %% command/0,
+
domain/0,
type/0,
protocol/0,
@@ -135,6 +141,18 @@
]).
+%% The command type has the general form:
+%% #{
+%% command := atom(),
+%% data := term()
+%% }
+%% But only certain values are actually valid, so the type gets the form:
+-type debug_command() :: #{
+ command := debug,
+ data := boolean()
+ }.
+%% -type command() :: debug_command().
+
-type uint8() :: 0..16#FF.
-type uint16() :: 0..16#FFFF.
-type uint20() :: 0..16#FFFFF.
@@ -867,6 +885,22 @@ info() ->
nif_info().
+-spec debug(D) -> ok when
+ D :: boolean().
+
+debug(D) when is_boolean(D) ->
+ command(#{command => debug,
+ data => D}).
+
+
+-spec command(Command) -> ok when
+ Command :: debug_command().
+
+command(#{command := debug,
+ data := Dbg} = Command) when is_boolean(Dbg) ->
+ nif_command(Command).
+
+
%% ===========================================================================
%%
@@ -3845,6 +3879,9 @@ error(Reason) ->
nif_info() ->
erlang:nif_error(undef).
+nif_command(_Command) ->
+ erlang:nif_error(undef).
+
nif_supports(_Key) ->
erlang:nif_error(undef).