aboutsummaryrefslogtreecommitdiffstats
path: root/doc/libs6/s6-ftrigrd.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/libs6/s6-ftrigrd.html')
-rw-r--r--doc/libs6/s6-ftrigrd.html37
1 files changed, 17 insertions, 20 deletions
diff --git a/doc/libs6/s6-ftrigrd.html b/doc/libs6/s6-ftrigrd.html
index 7325c72..672b660 100644
--- a/doc/libs6/s6-ftrigrd.html
+++ b/doc/libs6/s6-ftrigrd.html
@@ -17,7 +17,7 @@
<a href="//skarnet.org/">skarnet.org</a>
</p>
-<h1> The s6-ftrigrd program </h1>
+<h1> The s6-ftrigrd internal program </h1>
<p>
s6-ftrigrd is a helper program that manages a set of subscriptions to fifodirs as well
@@ -29,24 +29,17 @@ events happen.
<h2> Interface </h2>
<p>
- s6-ftrigrd is not meant to be called directly.
-</p>
-
-<ul>
- <li> If the client program uses <tt>ftrigr_startf()</tt>, it spawns an instance of
+ s6-ftrigrd is not meant to be called directly. When the client calls
+<tt>ftrigr_start()</tt> or <tt>ftrigr_startf</tt>, it spawns an instance of
s6-ftrigrd as a child. s6-ftrigrd's stdin is a pipe reading from the client; its
stdout is a pipe writing to the client; its stderr is the same as the client's; and
there's an additional pipe from s6-ftrigrd to the client, used for asynchronous
-notifications. </li>
- <li> If the client program uses <tt>ftrigr_start()</tt>, then it tries to connect
-to a Unix domain socket. An ftrigrd <a href="../localservice.html">local service</a> should be listening to that
-socket, i.e. a Unix domain super-server such as
-<a href="s6-ipcserver.html">s6-ipcserver</a>
-spawning an s6-ftrigrd program on every connection. Then an s6-ftrigrd instance is created
-for the client. </li>
- <li> When the client uses <tt>ftrigr_end()</tt>, or closes s6-ftrigrd's stdin in
-any way, s6-ftrigrd exits 0. </li>
-</ul>
+notifications.
+</p>
+
+<p> When the client uses <tt>ftrigr_end()</tt>, or closes s6-ftrigrd's stdin in
+any way, s6-ftrigrd exits 0.
+</p>
<p>
s6-ftrigrd handles the grunt work of creating fifos in a
@@ -60,7 +53,7 @@ the client.
<p>
The connection management between the client and s6-ftrigrd is entirely done
-by the <em>textclient</em> library from skalibs.
+by the <em>sassclient</em> library from skalibs.
</p>
<p>
@@ -71,9 +64,13 @@ to read them. To avoid uncontrolled growth, make sure your client calls
</p>
<p>
- An s6-ftrigrd instance can only handle up to FTRIGRD_MAX (defined in <tt>s6/ftrigr.h</tt>)
-subscriptions at once. By default, this number is 1000, which is more than enough for
-any reasonable system.
+ The number of concurrent subscriptions that an s6-ftrigrd instance can handle is
+only limited by RAM and open file descriptors. It is likely that the latter is the
+bottleneck: s6-ftrigrd uses two file descriptors per fifodir. With a default
+limit of 1024 open file descriptors per process, it means that s6-ftrigrd can
+handle around 500 concurrent fifodirs, which is reasonable for most systems, but
+make sure to increase the open files resource limit before starting an ftrigr
+session if you need more.
</p>
</body>