]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
exec-util: use hash ops with destructor
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 22 Jan 2025 01:49:07 +0000 (10:49 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 23 Jan 2025 09:22:52 +0000 (18:22 +0900)
src/shared/exec-util.c

index c673e344ee7162cba6684b3bfa3adce644fdc571..bc997a9383c83e4ed1ad16c86483149861b8b1d4 100644 (file)
@@ -99,7 +99,7 @@ static int do_execute(
                 char *envp[],
                 ExecDirFlags flags) {
 
-        _cleanup_hashmap_free_free_ Hashmap *pids = NULL;
+        _cleanup_hashmap_free_ Hashmap *pids = NULL;
         bool parallel_execution;
         int r;
 
@@ -114,12 +114,6 @@ static int do_execute(
 
         parallel_execution = FLAGS_SET(flags, EXEC_DIR_PARALLEL) && !callbacks;
 
-        if (parallel_execution) {
-                pids = hashmap_new(NULL);
-                if (!pids)
-                        return log_oom();
-        }
-
         /* Abort execution of this process after the timeout. We simply rely on SIGALRM as
          * default action terminating the process, and turn on alarm(). */
 
@@ -176,7 +170,7 @@ static int do_execute(
                         continue;
 
                 if (parallel_execution) {
-                        r = hashmap_put(pids, PID_TO_PTR(pid), t);
+                        r = hashmap_ensure_put(&pids, &trivial_hash_ops_value_free, PID_TO_PTR(pid), t);
                         if (r < 0)
                                 return log_oom();
                         t = NULL;