diff options
author | Christopher Faulet <[email protected]> | 2011-09-14 14:30:47 +0200 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2011-10-10 17:36:40 +0200 |
commit | 9679510bb27b569fd47394b6cb319916c3282de9 (patch) | |
tree | a3281c2e1fed667cdd5a42aa316cf787a6affe39 | |
parent | 2c4e984bd1d75524fd6444dc2032f8d758a945ae (diff) | |
download | otp-9679510bb27b569fd47394b6cb319916c3282de9.tar.gz otp-9679510bb27b569fd47394b6cb319916c3282de9.tar.bz2 otp-9679510bb27b569fd47394b6cb319916c3282de9.zip |
Add a warning to docs about workers' shutdown strategy
-rw-r--r-- | lib/stdlib/doc/src/supervisor.xml | 7 | ||||
-rw-r--r-- | system/doc/design_principles/sup_princ.xml | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/stdlib/doc/src/supervisor.xml b/lib/stdlib/doc/src/supervisor.xml index b4baf2f0a0..54e7cab884 100644 --- a/lib/stdlib/doc/src/supervisor.xml +++ b/lib/stdlib/doc/src/supervisor.xml @@ -171,6 +171,13 @@ child_spec() = {Id,StartFunc,Restart,Shutdown,Type,Modules} should be set to <c>infinity</c> to give the subtree ample time to shutdown. It is also allowed to set it to <c>infinity</c>, if the child process is a worker.</p> + <warning> + <p>Be careful by setting the <c>Shutdown</c> strategy to + <c>infinity</c> when the child process is a worker. Because, in this + situation, the termination of the supervision tree depends on the + child process, it must be implemented in a safe way and its cleanup + procedure must always return.</p> + </warning> <p><em>Important note on simple-one-for-one supervisors:</em> The dynamically created child processes of a simple-one-for-one supervisor are not explicitly killed, diff --git a/system/doc/design_principles/sup_princ.xml b/system/doc/design_principles/sup_princ.xml index 42d9f3e3d8..9e7cc2f543 100644 --- a/system/doc/design_principles/sup_princ.xml +++ b/system/doc/design_principles/sup_princ.xml @@ -184,6 +184,13 @@ init(...) -> shutdown. It is also allowed to set it to <c>infinity</c>, if the child process is a worker.</item> </list> + <warning> + <p>Be careful by setting the <c>Shutdown</c> strategy to + <c>infinity</c> when the child process is a worker. Because, in this + situation, the termination of the supervision tree depends on the + child process, it must be implemented in a safe way and its cleanup + procedure must always return.</p> + </warning> </item> <item> <p><c>Type</c> specifies if the child process is a supervisor or |