From 6fdcb401a0de580fba38eec63a92b45ee73c8b64 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Mon, 9 Jul 2018 18:23:35 +0200 Subject: erts: Fix spec and docs for process_info 'monitored_by' to include ports and NIF resources. Added new opaque type 'nif_resource'. --- erts/doc/src/erl_nif.xml | 2 +- erts/doc/src/erlang.xml | 15 ++++++++++++--- erts/preloaded/src/erlang.erl | 8 ++++---- 3 files changed, 17 insertions(+), 8 deletions(-) (limited to 'erts') diff --git a/erts/doc/src/erl_nif.xml b/erts/doc/src/erl_nif.xml index a8eff43623..0fff8f7cad 100644 --- a/erts/doc/src/erl_nif.xml +++ b/erts/doc/src/erl_nif.xml @@ -194,7 +194,7 @@ ok

Binaries are sequences of whole bytes. Bitstrings with an arbitrary bit length have no support yet.

- Resource objects + Resource objects

The use of resource objects is a safe way to return pointers to native data structures from a NIF. A resource object is diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml index 73800687b7..8e014c3010 100644 --- a/erts/doc/src/erlang.xml +++ b/erts/doc/src/erlang.xml @@ -197,6 +197,15 @@ + + + +

An opaque handle identifing a + NIF resource object + .

+ + + @@ -5288,10 +5297,10 @@ RealSystem = system + MissedSystem

MinBinVHeapSize is the minimum binary virtual heap size for the process.

- {monitored_by, Pids} + {monitored_by, MonitoredBy} -

A list of process identifiers monitoring the process (with - monitor/2).

+

A list of identifiers for all the processes, ports and NIF + resources, that are monitoring the process.

{monitors, Monitors} diff --git a/erts/preloaded/src/erlang.erl b/erts/preloaded/src/erlang.erl index 75f6901258..1ed6b6b284 100644 --- a/erts/preloaded/src/erlang.erl +++ b/erts/preloaded/src/erlang.erl @@ -86,15 +86,15 @@ | 'nano_seconds'. -opaque prepared_code() :: reference(). - -export_type([prepared_code/0]). --opaque dist_handle() :: atom(). +-opaque nif_resource() :: reference(). +-export_type([nif_resource/0]). +-opaque dist_handle() :: atom(). -export_type([dist_handle/0]). -type iovec() :: [binary()]. - -export_type([iovec/0]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -2316,7 +2316,7 @@ process_flag(_Flag, _Value) -> {min_heap_size, MinHeapSize :: non_neg_integer()} | {min_bin_vheap_size, MinBinVHeapSize :: non_neg_integer()} | {max_heap_size, MaxHeapSize :: max_heap_size()} | - {monitored_by, Pids :: [pid()]} | + {monitored_by, MonitoredBy :: [pid() | port() | nif_resource()]} | {monitors, Monitors :: [{process | port, Pid :: pid() | port() | {RegName :: atom(), Node :: node()}}]} | -- cgit v1.2.3