The libeio event loop adds RPM_CHECK_LIB to handle --with-libeio here:
(Presumably you will do your own pkg-config AutoFU to handle --with-libeio)

The patch in comments above has been mildly reworked to remove all debugging 
and start the event loop globally here:

You will need to manually enable asynchronous fsync-on-close (similar as 
diff --git a/lib/fsm.c b/lib/fsm.c
index 553774b..a7affcf 100644
--- a/lib/fsm.c
+++ b/lib/fsm.c
@@ -218,7 +218,7 @@ static int expandRegular(rpmfi fi, const char *dest, rpmpsm 
psm, int nodigest, i
     /* Create the file with 0200 permissions (write by owner). */
        mode_t old_umask = umask(0577);
-       wfd = Fopen(dest, "w.ufdio");
+       wfd = Fopen(dest, "wNS.ufdio");
     if (Ferror(wfd)) {

What is likely controversial is starting the event loop everywhere all the time 
in lib/poptALL.c
+#if defined(WITH_LIBEIO)
 +    /* Start libeio event loop. */
 +    rc = rpmeioStart(NULL);
 +    if (rc)
 +      fprintf(stderr, _("%s: event loop failed to start (%d)\n"),
 +              xgetprogname(), rc);

If you don't like my patch in lib/poptALL.c (I have mixed feelings), then 
please supply a positive suggestion for where and how to start an event loop in 

I doubt an idle event loop hurts anything. But if an idle event loop does 
affect RPM somehow, well its time to discover what else is needed IMHO. YMMV ...

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
Rpm-maint mailing list

Reply via email to