From 24637cd3776cda5fd0a919ba9343ba86d82d3e04 Mon Sep 17 00:00:00 2001
From: Laurent Bercot
Date: Wed, 18 Mar 2026 01:57:01 +0000
Subject: More fixes, ftrigr_string addition, doc update
---
doc/libs6/s6-ftrigrd.html | 37 +++++++++++++++++--------------------
1 file changed, 17 insertions(+), 20 deletions(-)
(limited to 'doc/libs6/s6-ftrigrd.html')
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 @@
skarnet.org
- The s6-ftrigrd program
+ The s6-ftrigrd internal program
s6-ftrigrd is a helper program that manages a set of subscriptions to fifodirs as well
@@ -29,24 +29,17 @@ events happen.
Interface
- s6-ftrigrd is not meant to be called directly.
-
-
-
- - If the client program uses ftrigr_startf(), it spawns an instance of
+ s6-ftrigrd is not meant to be called directly. When the client calls
+ftrigr_start() or ftrigr_startf, 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.
- - If the client program uses ftrigr_start(), then it tries to connect
-to a Unix domain socket. An ftrigrd local service should be listening to that
-socket, i.e. a Unix domain super-server such as
-s6-ipcserver
-spawning an s6-ftrigrd program on every connection. Then an s6-ftrigrd instance is created
-for the client.
- - When the client uses ftrigr_end(), or closes s6-ftrigrd's stdin in
-any way, s6-ftrigrd exits 0.
-
+notifications.
+
+
+ When the client uses ftrigr_end(), or closes s6-ftrigrd's stdin in
+any way, s6-ftrigrd exits 0.
+
s6-ftrigrd handles the grunt work of creating fifos in a
@@ -60,7 +53,7 @@ the client.
The connection management between the client and s6-ftrigrd is entirely done
-by the textclient library from skalibs.
+by the sassclient library from skalibs.
@@ -71,9 +64,13 @@ to read them. To avoid uncontrolled growth, make sure your client calls
- An s6-ftrigrd instance can only handle up to FTRIGRD_MAX (defined in s6/ftrigr.h)
-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.