File 4563-Improve-illustrations-in-supervisor-chapter-of-desig.patch of Package erlang

From f2219677422354e71cb11bbfd2a0e0bbd92a8e7d Mon Sep 17 00:00:00 2001
From: Maria-12648430 <maria-12648430@hnc-agency.org>
Date: Wed, 21 Apr 2021 18:03:21 +0200
Subject: [PATCH 3/4] Improve illustrations in supervisor chapter of design
 principles

---
 system/doc/design_principles/Makefile         |   7 +-
 .../doc/design_principles/sup-one_for_all.svg | 127 ++++++++++++++++++
 .../doc/design_principles/sup-one_for_one.svg |  86 ++++++++++++
 .../design_principles/sup-rest_for_one.svg    | 125 +++++++++++++++++
 system/doc/design_principles/sup4.fig         |  32 -----
 system/doc/design_principles/sup4.gif         | Bin 1974 -> 0 bytes
 system/doc/design_principles/sup5.fig         |  43 ------
 system/doc/design_principles/sup5.gif         | Bin 2536 -> 0 bytes
 system/doc/design_principles/sup_princ.xml    |  16 ++-
 9 files changed, 356 insertions(+), 80 deletions(-)
 create mode 100755 system/doc/design_principles/sup-one_for_all.svg
 create mode 100755 system/doc/design_principles/sup-one_for_one.svg
 create mode 100755 system/doc/design_principles/sup-rest_for_one.svg
 delete mode 100644 system/doc/design_principles/sup4.fig
 delete mode 100644 system/doc/design_principles/sup4.gif
 delete mode 100644 system/doc/design_principles/sup5.fig
 delete mode 100644 system/doc/design_principles/sup5.gif

diff --git a/system/doc/design_principles/Makefile b/system/doc/design_principles/Makefile
index 833e66ca43..5ba09513ab 100644
--- a/system/doc/design_principles/Makefile
+++ b/system/doc/design_principles/Makefile
@@ -56,13 +56,14 @@ GIF_FILES = \
 	dist4.gif \
 	dist5.gif \
 	inclappls.gif \
-	sup4.gif \
-	sup5.gif \
 	sup6.gif
 
 SVG_FILES = \
 	code_lock.svg \
-	code_lock_2.svg
+	code_lock_2.svg \
+	sup-one_for_all.svg \
+	sup-one_for_one.svg \
+	sup-rest_for_one.svg
 
 IMAGE_FILES = $(GIF_FILES) $(SVG_FILES)
 
diff --git a/system/doc/design_principles/sup-one_for_all.svg b/system/doc/design_principles/sup-one_for_all.svg
new file mode 100755
index 0000000000..e4cfb8fbbd
--- /dev/null
+++ b/system/doc/design_principles/sup-one_for_all.svg
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
+<svg width="21cm" height="14.4cm" viewBox="-5 -5 330 220" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <style type="text/css">
+    .link {stroke: #000000; stroke-width: 2;}
+
+    .sup.label {font-size: 27px; fill: #000000; text-anchor: middle; font-family: monospace; font-style: normal; font-weight: bold;}
+    .sup.body {fill: #ddddff; fill-opacity: 1; stroke-width: 3; stroke: #000000;}
+
+    .child.label {font-size: 27px; fill: #000000; text-anchor: middle; font-family: monospace; font-style: normal; font-weight: bold;}
+    .child.label.index {font-size: 12px;}
+    .child.body {fill: #eeeeee; fill-opacity: 1; stroke-width: 3; stroke: #000000;}
+    .child.body.terminated {fill: #ff8888;}
+    .child.body.sup-terminated {fill: #ffaa00;}
+    .child.body.restarted {stroke: #00aa00;}
+
+    .ellipsis {fill: #000000; fill-opacity: 1; stroke: none;}
+    .ellipsis.sup-terminated {fill: #ffaa00;}
+    .ellipsis.restarted {stroke: #00aa00;}
+
+    .arrow {stroke-width: 2; stroke-linecap: round;}
+    .arrow.shutdown {stroke: #ffaa00;}
+    .arrow.restart {stroke: #00aa00;}
+
+    .divider {stroke: #000000; stroke-width: 0.2; stroke-dasharray: 1 3;}
+
+    .legend.label {font-size: 10px; fill: #000000; text-anchor: left; font-family: sans-serif; font-style: normal; font-weight: normal;}
+    .legend.body.terminated {fill: #ff8888; fill-opacity: 1; stroke: none;}
+    .legend.body.sup-terminated {fill: #ffaa00; fill-opacity: 1; stroke: none;}
+    .legend.body.restarted {fill: none; fill-opacity: 1; stroke: #00aa00; stroke-width: 2;}
+  </style>
+  <!-- illustration for the one_for_all strategy -->
+
+  <!-- linking lines -->
+  <line class="link" x1="140" y1="40" x2="20" y2="100" />
+  <line class="link" x1="140" y1="40" x2="100" y2="100" />
+  <line class="link" x1="140" y1="40" x2="180" y2="100" />
+  <line class="link" x1="140" y1="40" x2="300" y2="100" />
+
+  <!-- supervisor -->
+  <g transform="translate(140 20)">
+    <rect class="sup body" x="-20" y="-20" width="40" height="40"/>
+    <text class="sup label" x="0" y="8.5">S</text>
+  </g>
+
+  <!-- child process 1 -->
+  <g transform="translate(20 100)">
+    <ellipse class="child body sup-terminated restarted" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" x="0" y="8.5">P</tspan><tspan class="child label index" x="8" y="12">1</tspan></text>
+  </g>
+
+  <!-- child process 2 -->
+  <g transform="translate(100 100)">
+    <ellipse class="child body terminated restarted" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" x="0" y="8.5">P</tspan><tspan class="child label index" x="8" y="12">2</tspan></text>
+  </g>
+
+  <!-- child process 3 -->
+  <g transform="translate(180 100)">
+    <ellipse class="child body sup-terminated restarted" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" x="0" y="8.5">P</tspan><tspan class="child label index" x="8" y="12">3</tspan></text>
+  </g>
+
+  <!-- ... -->
+  <g class="ellipsis sup-terminated restarted" transform="translate(240 100)">
+    <ellipse cx="-15" cy="0" rx="2" ry="2"/>
+    <ellipse cx="0" cy="0" rx="2" ry="2"/>
+    <ellipse cx="15" cy="0" rx="2" ry="2"/>
+  </g>
+
+  <!-- child process n -->
+  <g transform="translate(300 100)">
+    <ellipse class="child body sup-terminated restarted" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" x="0" y="8.5">P</tspan><tspan class="child label index" x="8" y="12">n</tspan></text>
+  </g>
+
+  <!-- shutdown order arrow -->
+  <g class="arrow shutdown" transform="translate(0 130)">
+    <line x1="300" y1="0" x2="140" y2="0" />
+    <line x1="140" y1="0" x2="60" y2="0" style="stroke-dasharray: 1 5" />
+    <line x1="60" y1="0" x2="20" y2="0" />
+    <line x1="20" y1="0" x2="30" y2="-3" />
+    <line x1="20" y1="0" x2="30" y2="3" />
+  </g>
+
+  <!-- restart order arrow -->
+  <g class="arrow restart" transform="translate(0 140)">
+    <line x1="20" y1="0" x2="300" y2="0" />
+    <line x1="300" y1="0" x2="290" y2="-3" />
+    <line x1="300" y1="0" x2="290" y2="3" />
+  </g>
+
+  <!-- divider -->
+  <line class="divider" transform="translate(0 150)" x1="-5" y1="0" x2="330" y2="0" />
+
+  <!-- legend -->
+  <g transform="translate(5 155)">
+    <g transform="translate(0 10)">
+        <ellipse class="legend body terminated" cx="0" cy="0" rx="5" ry="5"/>
+        <text class="legend label" x="10" y="3">Terminated process</text>
+    </g>
+    <g transform="translate(0 22)">
+        <ellipse class="legend body sup-terminated" cx="0" cy="0" rx="5" ry="5"/>
+        <text class="legend label" x="10" y="3">Process terminated by the supervisor</text>
+    </g>
+    <g transform="translate(0 34)">
+      <ellipse class="legend body restarted" cx="0" cy="0" rx="5" ry="5"/>
+      <text font-size="10" style="fill: #000000; text-anchor: left; font-family: sans-serif; font-style: normal; font-weight: normal" x="10" y="3">Process restarted by the supervisor</text>
+    </g>
+    <g transform="translate(0 46)">
+      <g class="arrow shutdown" style="stroke-width: 1.5">
+        <line x1="5" y1="0" x2="-5" y2="0" />
+        <line x1="-5" y1="0" x2="0" y2="-2" />
+        <line x1="-5" y1="0" x2="0" y2="2" />
+      </g>
+      <text class="legend label" x="10" y="3">Shutdown order</text>
+    </g>
+    <g transform="translate(0 58)">
+      <g class="arrow restart" style="stroke-width: 1.5">
+        <line x1="-5" y1="0" x2="5" y2="0" />
+        <line x1="5" y1="0" x2="0" y2="-2" />
+        <line x1="5" y1="0" x2="0" y2="2" />
+      </g>
+      <text class="legend label" x="10" y="3">Restart order</text>
+    </g>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/system/doc/design_principles/sup-one_for_one.svg b/system/doc/design_principles/sup-one_for_one.svg
new file mode 100755
index 0000000000..d422246124
--- /dev/null
+++ b/system/doc/design_principles/sup-one_for_one.svg
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
+<svg width="21cm" height="11.2cm" viewBox="-5 -5 330 180" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <style type="text/css">
+    .link {stroke: #000000; stroke-width: 2;}
+
+    .sup.label {font-size: 27px; fill: #000000; text-anchor: middle; font-family: monospace; font-style: normal; font-weight: bold;}
+    .sup.body {fill: #ddddff; fill-opacity: 1; stroke-width: 3; stroke: #000000;}
+
+    .child.label {font-size: 27px; fill: #000000; text-anchor: middle; font-family: monospace; font-style: normal; font-weight: bold;}
+    .child.label.index {font-size: 12px;}
+    .child.body {fill: #eeeeee; fill-opacity: 1; stroke-width: 3; stroke: #000000;}
+    .child.body.terminated {fill: #ff8888;}
+    .child.body.sup-terminated {fill: #ffaa00;}
+    .child.body.restarted {stroke: #00aa00;}
+
+    .ellipsis {fill: #000000; fill-opacity: 1; stroke: none}
+    .ellipsis.sup-terminated {fill: #ffaa00;}
+    .ellipsis.restarted {stroke: #00aa00;}
+
+    .divider {stroke: #000000; stroke-width: 0.2; stroke-dasharray: 1 3;}
+
+    .legend.label {font-size: 10px; fill: #000000; text-anchor: left; font-family: sans-serif; font-style: normal; font-weight: normal;}
+    .legend.body.terminated {fill: #ff8888; fill-opacity: 1; stroke: none;}
+    .legend.body.restarted {fill: none; fill-opacity: 1; stroke: #00aa00; stroke-width: 2;}
+  </style>
+  <!-- illustration for the one_for_one strategy -->
+
+  <!-- linking lines -->
+  <line class="link" x1="140" y1="40" x2="20" y2="100" />
+  <line class="link" x1="140" y1="40" x2="100" y2="100" />
+  <line class="link" x1="140" y1="40" x2="180" y2="100" />
+  <line class="link" x1="140" y1="40" x2="300" y2="100" />
+
+  <!-- supervisor -->
+  <g transform="translate(140 20)">
+    <rect class="sup body" x="-20" y="-20" width="40" height="40"/>
+    <text class="sup label" x="0" y="8.5">S</text>
+  </g>
+
+  <!-- child process 1 -->
+  <g transform="translate(20 100)">
+    <ellipse class="child body" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" font-size="27" x="0" y="8.5">P</tspan><tspan class="child label index" x="8" y="12">1</tspan></text>
+  </g>
+
+  <!-- child process 2 -->
+  <g transform="translate(100 100)">
+    <ellipse class="child body terminated restarted" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" x="0" y="8.5">P</tspan><tspan class="child label index" x="8" y="12">2</tspan></text>
+  </g>
+
+  <!--- child process 3 -->
+  <g transform="translate(180 100)">
+    <ellipse class="child body" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" x="0" y="8.5">P</tspan><tspan class="child label index" x="8" y="12">3</tspan></text>
+  </g>
+
+  <!-- ... -->
+  <g class="ellipsis" transform="translate(240 100)">
+    <ellipse cx="-15" cy="0" rx="2" ry="2"/>
+    <ellipse cx="0" cy="0" rx="2" ry="2"/>
+    <ellipse cx="15" cy="0" rx="2" ry="2"/>
+  </g>
+
+  <!-- child process n -->
+  <g transform="translate(300 100)">
+    <ellipse class="child body" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" font-size="27" x="0" y="8.5">P</tspan><tspan class="child label index" font-size="12" x="8" y="12">n</tspan></text>
+  </g>
+
+  <!-- divider -->
+  <line class="divider" transform="translate(0 135)" x1="-5" y1="0" x2="330" y2="0" />
+
+  <!-- legend -->
+  <g transform="translate(5 140)">
+    <g transform="translate(0 10)">
+        <ellipse class="legend body terminated" cx="0" cy="0" rx="5" ry="5"/>
+        <text class="legend label" x="10" y="3">Terminated process</text>
+    </g>
+    <g transform="translate(0 25)">
+      <ellipse class="legend body restarted" cx="0" cy="0" rx="5" ry="5"/>
+      <text class="legend label" x="10" y="3">Process restarted by the supervisor</text>
+    </g>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/system/doc/design_principles/sup-rest_for_one.svg b/system/doc/design_principles/sup-rest_for_one.svg
new file mode 100755
index 0000000000..33de28e99f
--- /dev/null
+++ b/system/doc/design_principles/sup-rest_for_one.svg
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN" "http://www.w3.org/TR/2001/PR-SVG-20010719/DTD/svg10.dtd">
+<svg width="21cm" height="14.4cm" viewBox="-5 -5 330 220" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+  <style type="text/css">
+    .link {stroke: #000000; stroke-width: 2;}
+
+    .sup.label {font-size: 27px; fill: #000000; text-anchor: middle; font-family: monospace; font-style: normal; font-weight: bold;}
+    .sup.body {fill: #ddddff; fill-opacity: 1; stroke-width: 3; stroke: #000000;}
+
+    .child.label {font-size: 27px; fill: #000000; text-anchor: middle; font-family: monospace; font-style: normal; font-weight: bold;}
+    .child.label.index {font-size: 12px;}
+    .child.body {fill: #eeeeee; fill-opacity: 1; stroke-width: 3; stroke: #000000;}
+    .child.body.terminated {fill: #ff8888;}
+    .child.body.sup-terminated {fill: #ffaa00;}
+    .child.body.restarted {stroke: #00aa00;}
+
+    .ellipsis {fill: #000000; fill-opacity: 1; stroke: none;}
+    .ellipsis.sup-terminated {fill: #ffaa00;}
+    .ellipsis.restarted {stroke: #00aa00;}
+
+    .arrow {stroke-width: 2; stroke-linecap: round;}
+    .arrow.shutdown {stroke: #ffaa00;}
+    .arrow.restart {stroke: #00aa00;}
+
+    .divider {stroke: #000000; stroke-width: 0.2; stroke-dasharray: 1 3;}
+
+    .legend.label {font-size: 10px; fill: #000000; text-anchor: left; font-family: sans-serif; font-style: normal; font-weight: normal;}
+    .legend.body.terminated {fill: #ff8888; fill-opacity: 1; stroke: none;}
+    .legend.body.sup-terminated {fill: #ffaa00; fill-opacity: 1; stroke: none;}
+    .legend.body.restarted {fill: none; fill-opacity: 1; stroke: #00aa00; stroke-width: 2;}
+  </style>
+  <!-- illustration for the rest_for_one strategy -->
+
+  <!-- linking lines -->
+  <line class="link" x1="140" y1="40" x2="20" y2="100" />
+  <line class="link" x1="140" y1="40" x2="100" y2="100" />
+  <line class="link" x1="140" y1="40" x2="180" y2="100" />
+  <line class="link" x1="140" y1="40" x2="300" y2="100" />
+
+  <!-- supervisor -->
+  <g transform="translate(140 20)">
+    <rect class="sup body" x="-20" y="-20" width="40" height="40"/>
+    <text class="sup label" x="0" y="8.5">S</text>
+  </g>
+
+  <!-- child process 1 -->
+  <g transform="translate(20 100)">
+    <ellipse class="child body" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" x="0" y="8.5">P</tspan><tspan class="child label index" x="8" y="12">1</tspan></text>
+  </g>
+
+  <!-- child process 2 -->
+  <g transform="translate(100 100)">
+    <ellipse class="child body terminated restarted" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" x="0" y="8.5">P</tspan><tspan class="child label index" x="8" y="12">2</tspan></text>
+  </g>
+
+  <!-- child process 3 -->
+  <g transform="translate(180 100)">
+    <ellipse class="child body sup-terminated restarted" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" x="0" y="8.5">P</tspan><tspan class="child label index" x="8" y="12">3</tspan></text>
+  </g>
+
+  <!-- ... -->
+  <g class="ellipsis sup-terminated restarted" transform="translate(240 100)">
+    <ellipse cx="-15" cy="0" rx="2" ry="2"/>
+    <ellipse cx="0" cy="0" rx="2" ry="2"/>
+    <ellipse cx="15" cy="0" rx="2" ry="2"/>
+  </g>
+
+  <!-- child process n -->
+  <g transform="translate(300 100)">
+    <ellipse class="child body sup-terminated restarted" cx="0" cy="0" rx="20" ry="20"/>
+    <text><tspan class="child label" x="0" y="8.5">P</tspan><tspan class="child label index" x="8" y="12">n</tspan></text>
+  </g>
+
+  <!-- shutdown order arrow -->
+  <g class="arrow shutdown" transform="translate(0 130)">
+    <line x1="300" y1="0" x2="180" y2="0" />
+    <line x1="180" y1="0" x2="190" y2="-3" />
+    <line x1="180" y1="0" x2="190" y2="3" />
+  </g>
+
+  <!-- restart order arrow -->
+  <g class="arrow restart" transform="translate(0 140)">
+    <line x1="100" y1="0" x2="300" y2="0" />
+    <line x1="300" y1="0" x2="290" y2="-3" />
+    <line x1="300" y1="0" x2="290" y2="3" />
+  </g>
+
+  <!-- divider -->
+  <line class="divider" transform="translate(0 150)" x1="-5" y1="0" x2="330" y2="0" />
+
+  <!-- legend -->
+  <g transform="translate(5 155)">
+    <g transform="translate(0 10)">
+        <ellipse class="legend body terminated" cx="0" cy="0" rx="5" ry="5"/>
+        <text class="legend label" x="10" y="3">Terminated process</text>
+    </g>
+    <g transform="translate(0 22)">
+        <ellipse class="legend body sup-terminated" cx="0" cy="0" rx="5" ry="5"/>
+        <text class="legend label" x="10" y="3">Process terminated by the supervisor</text>
+    </g>
+    <g transform="translate(0 34)">
+      <ellipse class="legend body restarted" cx="0" cy="0" rx="5" ry="5"/>
+      <text font-size="10" style="fill: #000000; text-anchor: left; font-family: sans-serif; font-style: normal; font-weight: normal" x="10" y="3">Process restarted by the supervisor</text>
+    </g>
+    <g transform="translate(0 46)">
+      <g class="arrow shutdown" style="stroke-width: 1.5">
+        <line x1="5" y1="0" x2="-5" y2="0" />
+        <line x1="-5" y1="0" x2="0" y2="-2" />
+        <line x1="-5" y1="0" x2="0" y2="2" />
+      </g>
+      <text class="legend label" x="10" y="3">Shutdown order</text>
+    </g>
+    <g transform="translate(0 58)">
+      <g class="arrow restart" style="stroke-width: 1.5">
+        <line x1="-5" y1="0" x2="5" y2="0" />
+        <line x1="5" y1="0" x2="0" y2="-2" />
+        <line x1="5" y1="0" x2="0" y2="2" />
+      </g>
+      <text class="legend label" x="10" y="3">Restart order</text>
+    </g>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/system/doc/design_principles/sup4.fig b/system/doc/design_principles/sup4.fig
deleted file mode 100644
index 9127f9797c..0000000000
--- a/system/doc/design_principles/sup4.fig
+++ /dev/null
@@ -1,32 +0,0 @@
-#FIG 3.1
-Landscape
-Center
-Inches
-1200 2
-6 2100 750 2550 1200
-2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
-	 2100 750 2550 750 2550 1200 2100 1200 2100 750
-4 0 -1 0 0 2 14 0.0000 4 150 105 2250 1050 1\001
--6
-1 4 0 1 -1 7 0 0 -1 0.000 1 0.0000 4762 2700 293 293 4575 2475 4950 2925
-1 4 0 1 -1 7 0 0 -1 0.000 1 0.0000 3112 2775 293 293 2925 2550 3300 3000
-1 4 0 1 -1 7 0 0 -1 0.000 1 0.0000 1987 2775 293 293 1800 2550 2175 3000
-2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
-	 675 2550 1125 2550 1125 3000 675 3000 675 2550
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 900 2550 2250 1200
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 1950 2475 2325 1200
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 2400 1200 3000 2475
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 2475 1200 4500 2550
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 2625 2325 3450 3150
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 2625 3225 3525 2325
-4 0 -1 0 0 2 14 0.0000 4 150 240 1875 2850 P1\001
-4 0 -1 0 0 2 14 0.0000 4 150 240 3000 2850 P2\001
-4 0 -1 0 0 2 14 0.0000 4 150 255 4650 2775 Pn\001
-4 0 -1 0 0 0 14 0.0000 4 195 2025 3450 975 One for one supervision\001
-4 0 -1 0 0 0 14 0.0000 4 195 2490 3450 1200 If any child dies it is restarted\001
diff --git a/system/doc/design_principles/sup4.gif b/system/doc/design_principles/sup4.gif
deleted file mode 100644
index fc099f9b06340e53698258f6cbae42f122fcaf27..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1974
zcmV;n2TAxxNk%w1VR!+$0Pp|+|Ns90001HR1OWg5001li0001Z0lEMH0{(=LsmtvT
zqnxzbi?iOm`wxcVNS5Y_rs~SJ?hD8AOxN~}=lag~{tpZahs2`sh)gP%%%<}RjY_A~
zs`Y9JXt&(1_q)Z4$K*pGbS|sc(e%g7j?0bkPJNEg@9rDE{tpP_mob>brJ*(DR~X2{
zXz^H+2rvmrsmKu7h@&~tDFgS3Ai7z4Li&K(a(9+kN%;yp8Foo)HrpB+o8_9;3p+Y1
z8`gE3Ys?F5N~7A)yuz9+oR#4A3#_YrZCy=$>Ah_x{r&9=F711~44V4+tP)M0ZtE>y
zKPqlNT=&YYUrg>_vV8vhtrO&o9)x!(;uUn3uiS!%=MqLVR}mjR{)3e;O1yV)RXYj{
z8)_7o=_1H_9zAAi$#Nw>eFI_A3@OsVE}cPesZ<uwnmRt=z#06wZ78>R6)_eKh!fgK
zPeKmy$~8|Hu6Yx;%DT$0-!XMyzn&!K)hybQQAtjfz_zV|xN@t$jX<~VO1)JW?S#nJ
zgTla=bh;yqIO-rTa1%RTmpAVSTYm*di}iP!+mt>k%Z=PqoaAn#na<stN+uercprlX
za<s(a)0`2Z=%i`%n%6(FR`cmqp;e_U2OsJvHk(zT^srtHhLvkA#%9Yp=G{5sEu-4B
zcgN<m=I^EiLAoR#tXBDt-(As6hq^BI9<kG-gvvDhO_Tuscb+dt6m&j$_g!(c)W_F+
zju41VOw^d>pnmwRN0dXf0i|7q8MbmyeF*BM;2s20WDkV=Ir!6m1Fd%whC#iAqDvk!
z2;yq6jVNI#U5Q2^I^#{#5qlZ+*kX`5N+{1#WFZ!!A-!Psq;oDB;~W@Vg%zE3!VUP<
zmRd<yQ<U~CN6d9ro{1(Ix;-WzY38jdBAjgEG?SY&DkA5c2brj$o_;nG;DvVnNoX94
zOk`1^ik5L`ZHO)ksTH$1x?`l4K2b=f3th^o5}NX~P@bKR`bKJ|Zc1vZ3!VxXUZScB
zYiq26+E}c%z7R=n6?k@QucgWgENi|FYh$pp!u9?tv7F+zD+b9b3+Z8-UBD}}*0yLY
zs)St2ZL765i^#Lx5=IItC5bz3o0d>(2fFEoq)NQMzT2z3+ge7it<5~sWWJH|+Xou%
z`YQ*(0gEs&!D_s7?qmroj0HmtlkhOaR7gB8!WCPLsT~<l#&Ke7(IscKA(s*t$tIoL
zR>}xBv@y#!e(W(kGB4Bbz3{|*GbhFVymHTZNTwUQCJWsc$Q0v>G#f?BCJ4_>2MzSg
z2u*#(nk9oGHP%&wkY~kRdtLL=w=pv|+0LF~Gc#&?dN$QuzfDKnZA(J;5TZWY_0f69
z@T$0Dr~P+)R!ik%;XdEZ0^x+K%{S9~JpMkl;F7PZxC@qF?Fi*E8x8o(ncLksJH2@h
z@xTwGe&^^1YwmVWtf!ms#<REX`m~puUe)c&u5N?xxaaQe?lTC#BJtV69y}7rr)s+)
z&Og5_-itf0Jf)#apM>9ZOPx0LgXRuC=G}`wXW!<-?fT&Bdx}1}+`rF$-r;8lh4&mg
z-kTKh(@DSU<?nwu3*h|P&@{?z4qS4(4FLh+Inb?(ZN{@$1UV-xr~&SQ1?wLMzooR}
zSx|HpJQmG1NHEq#Pj@F2A-!f7GiiaXbC#jbb?jn25OM%@{K|~}0HwDZFiSA9+ttwq
z1Fs+o(1a5VjSe%IL?te<c<d@d{<RDi#opPFcgWhJ_M|u$iE&Vau<@bTT(yYIEMXTa
zGldF|_`?=fryV+KLY;_+G7_?|bb{K<7z-pv|DkD+U)bK-KG;J%nJr>pbKnkDmpp34
z(SwVWR3lB$M$KW&a7TdCAF22{#Nn}oy8C0;7&${ercxyP>SO)Ln6y<kaFlm5*B3i!
z7=SP^mVvxv*+>T!Z9Qs@Q$ZpV^XJQChLVEVqSY;l@Cf8ok(ac@Brq%4%wakcmv4E}
zlw65GSz42s<J6`(K?%)JZKq3q$(k~&`5Rq+6P$<ZiY}LfPB6ZNOz_#J|K9n_O06YV
zvm8^Dc=f+%_6ecx6el+RE5#gLl`~PpSf@YJd6#uE)RGPjAw{LRypF~*l2?2sjKUa6
zdUi~t$^_{=RSHj(F6pJi!(T$61g3L_vzIZAXLBS9%YAMsr26#e#Q?fYh>nM-JxvdX
zEP6~FPV}fOt!hfIs#B|0M@9LRYETQq(|{_~KEgEWSPL0dCr%ZtO|>dM_YqBU+7nC0
z%%&CB%2u&Hw4PtJYcRW7RIS<(sY&JQUO5R=Vw#nzVbv>PbvC}NMizUIHR%o+ci68D
z@uJ-m>`EK!*tP;q6rcKRX!Ckm%vKh%wtVLK9=Wj9Le{gtY9&k+d&t<*R<zS>9K$AS
z+C7dTXPND-Z&Q@}S3%}xl7rnXZ-sldiG7le`y3h}uUl74it%#Hg({=aiZm?d#ILQH
zZuV{q*uExLTjo74bh`M#k)jc}?!}ZDxtPo9y0*Ud^&%;ADbMus_fHEP@W1|R;Pe?X
z!31_8gY^`{2P;^@J!>z8op#}ySvbRt;;@H54B`-rc*G<wv58NN;uNcR#Vl^Ii(d?5
IArt@rJGS7`g8%>k

diff --git a/system/doc/design_principles/sup5.fig b/system/doc/design_principles/sup5.fig
deleted file mode 100644
index 554ab28ba0..0000000000
--- a/system/doc/design_principles/sup5.fig
+++ /dev/null
@@ -1,43 +0,0 @@
-#FIG 3.1
-Landscape
-Center
-Inches
-1200 2
-1 4 0 1 -1 7 0 0 -1 0.000 1 0.0000 4762 2700 293 293 4575 2475 4950 2925
-1 4 0 1 -1 7 0 0 -1 0.000 1 0.0000 3112 2775 293 293 2925 2550 3300 3000
-1 4 0 1 -1 7 0 0 -1 0.000 1 0.0000 1987 2775 293 293 1800 2550 2175 3000
-2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
-	 675 2550 1125 2550 1125 3000 675 3000 675 2550
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 900 2550 2250 1200
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 1950 2475 2325 1200
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 2400 1200 3000 2475
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 2475 1200 4500 2550
-2 2 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 5
-	 2100 750 2550 750 2550 1200 2100 1200 2100 750
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 2775 2325 3450 3225
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 2775 3150 3525 2400
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 4350 3075 5100 2250
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 4425 2175 5100 3150
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 1650 2325 2325 3150
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 1650 3150 2325 2400
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 525 2325 1350 3150
-2 1 0 1 -1 7 0 0 -1 0.000 0 0 -1 0 0 2
-	 525 3150 1350 2325
-4 0 -1 0 0 2 14 0.0000 4 150 240 1875 2850 P1\001
-4 0 -1 0 0 2 14 0.0000 4 150 240 3000 2850 P2\001
-4 0 -1 0 0 2 14 0.0000 4 150 255 4650 2775 Pn\001
-4 0 -1 0 0 0 14 0.0000 4 195 2310 3525 1005 If any child dies all children\001
-4 0 -1 0 0 0 14 0.0000 4 150 3015 3525 1260 are terminated and all are restarted\001
-4 0 -1 0 0 2 14 0.0000 4 105 105 2250 1050 a\001
-4 0 -1 0 0 0 14 0.0000 4 195 2040 3525 750 all-for-one supervision\001
diff --git a/system/doc/design_principles/sup5.gif b/system/doc/design_principles/sup5.gif
deleted file mode 100644
index 1197278f6349d5baeeaf5a5ecf9acbf1a4f37175..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2536
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

diff --git a/system/doc/design_principles/sup_princ.xml b/system/doc/design_principles/sup_princ.xml
index f03c317492..75ca085ed5 100644
--- a/system/doc/design_principles/sup_princ.xml
+++ b/system/doc/design_principles/sup_princ.xml
@@ -125,11 +125,18 @@ SupFlags = #{strategy => Strategy, ...}</code>
     <p>The <c>strategy</c> key is optional in this map. If it is not
       given, it defaults to <c>one_for_one</c>.</p>
 
+    <note>
+      <p>For simplicity, the diagrams shown in this section display a
+        setup where all the depicted children are assumed to have
+        a <seealso marker="#restart">restart type</seealso> of
+        <c>permanent</c>.</p>
+    </note>
+
     <section>
       <title>one_for_one</title>
       <p>If a child process terminates, only that process is restarted.</p>
       <marker id="sup4"></marker>
-      <image file="../design_principles/sup4.gif">
+      <image file="../design_principles/sup-one_for_one.svg" width="80%">
         <icaption>One_For_One Supervision</icaption>
       </image>
     </section>
@@ -140,7 +147,7 @@ SupFlags = #{strategy => Strategy, ...}</code>
         terminated, and then all child processes, including
         the terminated one, are restarted.</p>
       <marker id="sup5"></marker>
-      <image file="../design_principles/sup5.gif">
+      <image file="../design_principles/sup-one_for_all.svg" width="80%">
         <icaption>One_For_All Supervision</icaption>
       </image>
     </section>
@@ -151,6 +158,10 @@ SupFlags = #{strategy => Strategy, ...}</code>
         processes (that is, the child processes after the terminated
         process in start order) are terminated. Then the terminated
         child process and the rest of the child processes are restarted.</p>
+      <marker id="sup6"></marker>
+      <image file="../design_principles/sup-rest_for_one.svg" width="80%">
+        <icaption>Rest_For_One Supervision</icaption>
+      </image>
     </section>
 
      <section>
@@ -721,3 +732,4 @@ supervisor:terminate_child(Sup, Pid)</code>
     </section>
   </section>
 </chapter>
+
-- 
2.26.2

openSUSE Build Service is sponsored by