about summary refs log tree commit diff
path: root/doc/libs6/s6lockd-helper.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/libs6/s6lockd-helper.html')
-rw-r--r--doc/libs6/s6lockd-helper.html52
1 files changed, 52 insertions, 0 deletions
diff --git a/doc/libs6/s6lockd-helper.html b/doc/libs6/s6lockd-helper.html
new file mode 100644
index 0000000..2c54e5c
--- /dev/null
+++ b/doc/libs6/s6lockd-helper.html
@@ -0,0 +1,52 @@
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <meta http-equiv="Content-Language" content="en" />
+    <title>s6: the s6lockd-helper internal program</title>
+    <meta name="Description" content="s6: the s6lockd-helper internal program" />
+    <meta name="Keywords" content="s6 s6lockd-helper lockd asynchronous timed lock daemon helper" />
+    <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> -->
+  </head>
+<body>
+
+<a href="index.html">libs6</a><br />
+<a href="../">s6</a><br />
+<a href="http://skarnet.org/software/">Software</a><br />
+<a href="http://skarnet.org/">skarnet.org</a><p />
+
+<h1> The <tt>s6lockd-helper</tt> program </h1>
+
+<p>
+<tt>s6lockd-helper</tt> is a helper program for the s6lock daemon.
+It just acquires a lock and holds it until it is killed or told to
+exit by its parent daemon.
+</p>
+
+<h2> Interface </h2>
+
+<p>
+  s6lockd-helper is not meant to be invoked directly by the user:
+it will be spawned by the
+<a href="s6lockd.html">s6lockd</a> program.
+</p>
+
+<h2> Notes </h2>
+
+<ul>
+ <li> s6lockd-helper blocks on lock acquisition until it succeeds. It then
+notifies its parent. It exits when its parent tells him to (i.e. when the
+client asks for lock release). During the lock acquisition phase, it can
+be killed if its parent detects a timeout. </li>
+ <li> One s6lockd-helper process per lock is the only way (apart from
+threads) to implement timed lock acquisition. This can lead to a lot of
+s6lockd-helper processes, but this is not a problem:
+  <ul>
+   <li> Processes are not a scarce resource. Today's schedulers work in O(1),
+i.e. a sleeping process takes no scheduling time at all. </li>
+   <li> s6lockd-helper is extremely tiny. Every instance should use up at
+most one or two pages of non-sharable memory. </li>
+  </ul> </li>
+</ul>
+
+</body>
+</html>