blob: bc3d1a58de714746d2280be3c18db23bbed45962 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<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="//skarnet.org/default.css" /> -->
</head>
<body>
<p>
<a href="index.html">libs6</a><br />
<a href="../">s6</a><br />
<a href="//skarnet.org/software/">Software</a><br />
<a href="//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),
or in O(a function of the number of runnable processes), which means that 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>
|