From 8efef4a2b75a7c7db54cb1b2d4b7ed36bba78db9 Mon Sep 17 00:00:00 2001 From: Raimo Niskanen Date: Fri, 6 Oct 2017 11:46:38 +0200 Subject: Change {clean_timeout,infinity} to use proxy --- lib/stdlib/doc/src/gen_statem.xml | 10 +++++++--- lib/stdlib/src/gen_statem.erl | 2 -- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'lib/stdlib') diff --git a/lib/stdlib/doc/src/gen_statem.xml b/lib/stdlib/doc/src/gen_statem.xml index 8de6ed754f..4a824f073e 100644 --- a/lib/stdlib/doc/src/gen_statem.xml +++ b/lib/stdlib/doc/src/gen_statem.xml @@ -1329,7 +1329,7 @@ handle_event(_, _, State, Data) -> T is the time-out time. {clean_timeout,T} works like just T described in the note above - and uses a proxy process for T < infinity, + and uses a proxy process while {dirty_timeout,T} bypasses the proxy process which is more lightweight.

@@ -1339,8 +1339,12 @@ handle_event(_, _, State, Data) -> with {dirty_timeout,T} to avoid that the calling process dies when the call times out, you will have to be prepared to handle - a late reply. - So why not just let the calling process die? + a late reply. Note that there is an odd chance + to get a late reply even with + {dirty_timeout,infinity} or infinity + for example in the event of network problems. + So why not just let the calling process die + by not catching the exception?

diff --git a/lib/stdlib/src/gen_statem.erl b/lib/stdlib/src/gen_statem.erl index 1110d18af6..98979c6627 100644 --- a/lib/stdlib/src/gen_statem.erl +++ b/lib/stdlib/src/gen_statem.erl @@ -510,8 +510,6 @@ call(ServerRef, Request, Timeout) -> parse_timeout(Timeout) -> case Timeout of - {clean_timeout,infinity} -> - {dirty_timeout,infinity}; {clean_timeout,_} -> Timeout; {dirty_timeout,_} -> -- cgit v1.2.3