diff options
author | Dmytro Lytovchenko <[email protected]> | 2016-05-25 14:37:03 +0200 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2016-06-10 09:46:33 +0200 |
commit | 3ee5343415d6ae0ce1ff1c2a2555051431a9315e (patch) | |
tree | 50f0acc46c6f30bf9ce58b9851ca1a2cd92f1772 /erts/emulator/beam/erl_bif_port.c | |
parent | d26c15e07229c90ba8353bd78d5406ada0f13271 (diff) | |
download | otp-3ee5343415d6ae0ce1ff1c2a2555051431a9315e.tar.gz otp-3ee5343415d6ae0ce1ff1c2a2555051431a9315e.tar.bz2 otp-3ee5343415d6ae0ce1ff1c2a2555051431a9315e.zip |
erts: Add port monitors
* erlang:monitor/2 with port argument is added, erlang:demonitor, using port task API and avoiding locking;
* port_info and process_info support for monitored ports (with named port monitors support);
* Exit signals contain type 'process' or 'port';
* Propagation of port exit signals;
* Self-cleaning when origin process dies with monitor on;
* 8 test cases + testcase for port driver crashing;
* Documentation for all of the above (monitor, demonitor, port_info and process_info) updated
Diffstat (limited to 'erts/emulator/beam/erl_bif_port.c')
-rw-r--r-- | erts/emulator/beam/erl_bif_port.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_bif_port.c b/erts/emulator/beam/erl_bif_port.c index 37f4e1de49..208935bed9 100644 --- a/erts/emulator/beam/erl_bif_port.c +++ b/erts/emulator/beam/erl_bif_port.c @@ -139,6 +139,12 @@ sig_lookup_port(Process *c_p, Eterm id_or_name) return lookup_port(c_p, id_or_name, ERTS_PORT_SFLGS_INVALID_DRIVER_LOOKUP); } +/* Non-inline copy of sig_lookup_port to be exported */ +Port *erts_sig_lookup_port(Process *c_p, Eterm id_or_name) +{ + return lookup_port(c_p, id_or_name, ERTS_PORT_SFLGS_INVALID_DRIVER_LOOKUP); +} + static ERTS_INLINE Port * data_lookup_port(Process *c_p, Eterm id_or_name) { |