]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-event: Move SOURCE_POST check into mark_post_sources_pending()
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 14 Nov 2025 11:14:44 +0000 (12:14 +0100)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 14 Nov 2025 14:18:33 +0000 (15:18 +0100)
Rename to maybe_mark_post_sources_pending() as well to match the new
behavior.

Follow up for 4c8b6d636c92e84f4b40db5656db58f71f397a1d

src/libsystemd/sd-event/sd-event.c

index 20a9c5c12b8b00ac6cb6970aacfd6df88b7f6e90..a211d62f007637aaaf8a140c20c3fb94bcade5a8 100644 (file)
@@ -4079,10 +4079,13 @@ static int source_memory_pressure_initiate_dispatch(sd_event_source *s) {
         return 0; /* go on, dispatch to user callback */
 }
 
-static int mark_post_sources_pending(sd_event *e) {
+static int maybe_mark_post_sources_pending(EventSourceType t, sd_event *e) {
         sd_event_source *z;
         int r;
 
+        if (t == SOURCE_POST)
+                return 0;
+
         SET_FOREACH(z, e->post_sources) {
                 if (event_source_is_offline(z))
                         continue;
@@ -4134,12 +4137,10 @@ static int source_dispatch(sd_event_source *s) {
                         return r;
         }
 
-        if (s->type != SOURCE_POST) {
-                /* If we execute a non-post source, let's mark all post sources as pending. */
-                r = mark_post_sources_pending(s->event);
-                if (r < 0)
-                        return r;
-        }
+        /* If we execute a non-post source, let's mark all post sources as pending. */
+        r = maybe_mark_post_sources_pending(s->type, s->event);
+        if (r < 0)
+                return r;
 
         if (s->type == SOURCE_MEMORY_PRESSURE) {
                 r = source_memory_pressure_initiate_dispatch(s);
@@ -4248,13 +4249,11 @@ static int source_dispatch(sd_event_source *s) {
 
         s->dispatching = false;
 
-        if (saved_type != SOURCE_POST) {
-                /* More post sources might have been added while executing the callback, let's make sure
-                 * those are marked pending as well. */
-                r = mark_post_sources_pending(saved_event);
-                if (r < 0)
-                        return r;
-        }
+        /* More post sources might have been added while executing the callback, let's make sure
+         * those are marked pending as well. */
+        r = maybe_mark_post_sources_pending(saved_type, saved_event);
+        if (r < 0)
+                return r;
 
 finish:
         if (r < 0) {