From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 3721 invoked from network); 18 Sep 2022 20:38:31 -0000 Received: from alyss.skarnet.org (95.142.172.232) by inbox.vuxu.org with ESMTPUTF8; 18 Sep 2022 20:38:31 -0000 Received: (qmail 17483 invoked by uid 89); 18 Sep 2022 20:38:56 -0000 Mailing-List: contact supervision-help@list.skarnet.org; run by ezmlm Sender: Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Received: (qmail 17476 invoked from network); 18 Sep 2022 20:38:55 -0000 From: "Laurent Bercot" To: supervision@list.skarnet.org Subject: Re: ftrig pipe naming convention Date: Sun, 18 Sep 2022 20:38:27 +0000 Message-Id: In-Reply-To: <20220918154159.che33klmotj6nps6@localhost> References: <20220918154159.che33klmotj6nps6@localhost> Reply-To: "Laurent Bercot" User-Agent: eM_Client/9.1.2109.0 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable >I wonder what is the reason behind the naming convention? What is the >downside of simply writing to any present fifo file ? It could work like you're suggesting. But : - checking the type of a file is an additional fstat() system call - there may be reasons in the future to store other files in the fifodir that do not receive the event - it is nice to detect stale fifos, if any, and delete them as soon as you can (#L39), and you don't want to delete unrelated files - but most importantly: creating a fifo in a fifodir that allows you to receive events without a race condition, which is the whole point of the ftrig library, is slightly more complex to do safely than just "mkfifo event/foobar", and I don't want people to think that this is the API. No, the API is ftrigr_subscribe(), and everything under it is implementation details. Restricting the naming is a way of ensuring (as much as possible) that the fifos were indeed created by the appropriate programs. Don't create fifos willy-nilly in a fifodir, and since you found the naming convention, don't use it to work around the check to create your fifos outside of ftrigr_subscribe(). If you do, it will work, until the time when it doesn't, and it will be a complete PITA to debug. -- Laurent