From 6e01408aba71e26884c5db81b8e4fa89bd803576 Mon Sep 17 00:00:00 2001
From: Rickard Green
Date: Fri, 21 Sep 2012 15:12:07 +0200
Subject: Implement true asynchronous signaling between processes and ports
---
erts/doc/src/erl.xml | 60 +++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 48 insertions(+), 12 deletions(-)
(limited to 'erts/doc/src/erl.xml')
diff --git a/erts/doc/src/erl.xml b/erts/doc/src/erl.xml
index f7d8d37fd3..85c6140b01 100644
--- a/erts/doc/src/erl.xml
+++ b/erts/doc/src/erl.xml
@@ -586,18 +586,38 @@
erts_alloc(3) for
further information.
- -
-
Enable synchronous message passing to ports.
- As of OTP-R16 message passing to ports are truly asynchronously
- implemented. Correctly written Erlang programs should be able
- to handle this without any issues. Bugs in existing Erlang
- programs that make false assumptions about message passing to
- ports may, however, be tricky to find. This switch has been
- introduced in order to at least make it easier to compare
- behaviors during a transition period. Note that this flag is
- deprecated as of its introduction, and is scheduled for removal
- in OTP-R17.
+
+ -
+
Control behavior of signals to ports.
+ As of OTP-R16 signals to ports are truly asynchronously
+ delivered. Note that signals always have been documented as
+ asynchronous. The underlying implementation has, however,
+ previously delivered these signals synchronously. Correctly
+ written Erlang programs should be able to handle this without
+ any issues. Bugs in existing Erlang programs that make false
+ assumptions about signals to ports may, however, be tricky to
+ find. This switch has been introduced in order to at least
+ make it easier to compare behaviors during a transition period.
+ Note that this flag is deprecated as of its
+ introduction, and is scheduled for removal in OTP-R17.
+ Behavior should be one of the following characters:
+
+ d
+ - The default. Asynchronous signals. A process that sends
+ a signal to a port may continue execution before the signal
+ has been delivered to the port.
+ s
+ - Synchronous signals. A processes that sends a signal
+ to a port will not continue execution until the signal has
+ been delivered. Should only be used for testing and
+ debugging.
+ a
+ - Asynchronous signals. As the default, but a processes
+ that sends a signal will even more frequently continue
+ execution before the signal has been delivered to the
+ port. Should only be used for testing and
+ debugging.
+
-
@@ -948,6 +968,22 @@
without prior notice.
+ +spp Bool
+ -
+
Set default scheduler hint for port parallelism. If set to
+ true, the VM will schedule port tasks when it by this can
+ improve the parallelism in the system. If set to false,
+ the VM will try to perform port tasks immediately and by this
+ improve latency at the expense of parallelism. If this
+ flag has not been passed, the default scheduler hint for port
+ parallelism is currently false. The default used can be
+ inspected in runtime by calling
+ erlang:system_info(port_parallelism).
+ The default can be overriden on port creation by passing the
+ parallelism
+ option to
+ open_port/2
.
+
-
Suggested stack size, in kilowords, for scheduler threads.
--
cgit v1.2.3