+(** directfifowatcher.ml: Routines to handle non-persistent scripts *)
+(* Semantics:
+ * - The 'out' descriptor must be opened first
+ * - As soon as the backend script dies, the connection to the entry is
+ * closed.
+ * - To avoid user-inflicted pain, all entries are opened at the time
+ * that they are created. Reopening these entries is a little complicated
+ * but nevertheless sound:
+ * * When a script dies, its fd is reopened
+ * * If a script fails to execute, its fd is closed and reopened to
+ * beat a race that can happen when the user closes the connection
+ * before the script can be launched.
+ *)