Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
0294-erts-Expand-erlang-iolist_to_iovec-docs.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0294-erts-Expand-erlang-iolist_to_iovec-docs.patch of Package erlang
From 5da19a0d856c5f0ddba6dd4886b809a7f5c5aa35 Mon Sep 17 00:00:00 2001 From: Lukas Larsson <lukas@erlang.org> Date: Fri, 22 Jan 2021 17:05:11 +0100 Subject: [PATCH 4/8] erts: Expand erlang:iolist_to_iovec docs --- erts/doc/src/erlang.xml | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml index dc16c3d6a2..21f15c20e2 100644 --- a/erts/doc/src/erlang.xml +++ b/erts/doc/src/erlang.xml @@ -2431,8 +2431,36 @@ os_prompt%</pre> <name name="iolist_to_iovec" arity="1" since="OTP 20.1"/> <fsummary>Converts an iolist to a iovec.</fsummary> <desc> - <p>Returns an iovec that is made from the integers and binaries in - <c><anno>IoListOrBinary</anno></c>.</p> + <p>Returns an <seetype marker="#iovec">iovec</seetype> that is made from + the integers and binaries in <c><anno>IoListOrBinary</anno></c>. + This function is useful when you want to flatten an iolist but you do + not need a single binary. This can be useful for passing the data + to nif functions such as + <seecref marker="erl_nif#enif_inspect_iovec"><c>enif_inspect_iovec</c></seecref> + or do more efficient message passing. The advantage of using this + function over + <seemfa marker="#iolist_to_binary/1"><c>iolist_to_binary/1</c></seemfa> + is that it does not have to copy + <seeguide marker="system/efficiency_guide:binaryhandling#refc_binary"> + off-heap binaries</seeguide>. Example:</p> + <pre> +> <input>Bin1 = <<1,2,3>>.</input> +<<1,2,3>> +> <input>Bin2 = <<4,5>>.</input> +<<4,5>> +> <input>Bin3 = <<6>>.</input> +<<6>> +%% If you pass small binaries and integers it works as iolist_to_binary +> <input>erlang:iolist_to_iovec([Bin1,1,[2,3,Bin2],4|Bin3]).</input> +[<<1,2,3,1,2,3,4,5,4,6>>] +%% If you pass larger binaries, they are split and returned in a form +%% optimized for calling the C function writev. +> <input>erlang:iolist_to_iovec([<<1>>,<<2:8096>>,<<3:8096>>]).</input> +[<<1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,...>>, + <<0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + ...>>, + <<0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,...>>]</pre> </desc> </func> -- 2.26.2
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor