Browse Source

Fix Transport:messages/0 return value in the guide

Thanks Roberto Ostinelli for the heads up.
Loïc Hoguin 4 years ago
parent
commit
18816dfb0c
1 changed files with 18 additions and 16 deletions
  1. 18 16
      doc/src/guide/transports.asciidoc

+ 18 - 16
doc/src/guide/transports.asciidoc

@@ -70,27 +70,29 @@ this call return as soon as data was read, regardless of its size.
 Active mode requires you to inform the socket that you want to receive
 Active mode requires you to inform the socket that you want to receive
 data as a message and to write the code to actually receive it.
 data as a message and to write the code to actually receive it.
 
 
-There are two kinds of active modes: `{active, once}` and
-`{active, true}`. The first will send a single message before going
-back to passive mode; the second will send messages indefinitely.
-We recommend not using the `{active, true}` mode as it could quickly
-flood your process mailbox. It's better to keep the data in the socket
-and read it only when required.
-
-Three different messages can be received:
-
-* `{OK, Socket, Data}`
-* `{Closed, Socket}`
-* `{Error, Socket, Reason}`
-
-The value of `OK`, `Closed` and `Error` can be different
+There are three kinds of active modes: `{active, once}`, `{active, N}`
+and `{active, true}`. The first will send a single message before going
+back to passive mode; the second will send `N` messages followed by
+a `Passive` message when switching back to passive mode; the third
+will send messages indefinitely. We recommend not using the `{active, true}`
+mode as it could quickly flood your process mailbox. It's better to keep
+the data in the socket and read it only when required.
+
+Four different messages can be received:
+
+* Incoming data: `{OK, Socket, Data}`
+* Socket closed: `{Closed, Socket}`
+* Socket error: `{Error, Socket, Reason}`
+* Switch to passive mode: `{Passive, Socket}`
+
+The value of `OK`, `Closed`, `Error` and `Passive` can be different
 depending on the transport being used. To be able to properly match
 depending on the transport being used. To be able to properly match
 on them you must first call the `Transport:messages/0` function.
 on them you must first call the `Transport:messages/0` function.
 
 
 .Retrieving the transport's active message identifiers
 .Retrieving the transport's active message identifiers
 
 
 [source,erlang]
 [source,erlang]
-{OK, Closed, Error} = Transport:messages().
+{OK, Closed, Error, Passive} = Transport:messages().
 
 
 To start receiving messages you will need to call the `Transport:setopts/2`
 To start receiving messages you will need to call the `Transport:setopts/2`
 function, and do so every time you want to receive data.
 function, and do so every time you want to receive data.
@@ -99,7 +101,7 @@ function, and do so every time you want to receive data.
 
 
 [source,erlang]
 [source,erlang]
 ----
 ----
-{OK, Closed, Error} = Transport:messages(),
+{OK, Closed, Error, Passive} = Transport:messages(),
 Transport:setopts(Socket, [{active, once}]),
 Transport:setopts(Socket, [{active, once}]),
 receive
 receive
 	{OK, Socket, Data} ->
 	{OK, Socket, Data} ->