summaryrefslogtreecommitdiff
path: root/debuginfod/debuginfod-client.c
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2022-05-08 21:16:10 +0200
committerMark Wielaard <mark@klomp.org>2022-05-15 00:26:31 +0200
commit27414ecffd6cc71c9af7bacc75ce448121ac005f (patch)
treec70ead3679ae13b528fe494a8d2ed5689568da9d /debuginfod/debuginfod-client.c
parent6b08114b11985ec3a903456f278aa67329491eae (diff)
downloadelfutils-27414ecffd6cc71c9af7bacc75ce448121ac005f.tar.gz
debuginfod: update mtime of interval_path as early as possible
Call utime on interval_path file as soon as the thread is committed to cleanup the cache files. This will prevent other threads trying to also commit to cleaning the cache files. Having multiple threads try to clean the cache simultaniously doesn't improve cleanup speed because the threads will try to delete the files in the same order. Signed-off-by: Mark Wielaard <mark@klomp.org>
Diffstat (limited to 'debuginfod/debuginfod-client.c')
-rw-r--r--debuginfod/debuginfod-client.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
index 6bdf1908..b7b65aff 100644
--- a/debuginfod/debuginfod-client.c
+++ b/debuginfod/debuginfod-client.c
@@ -297,6 +297,11 @@ debuginfod_clean_cache(debuginfod_client *c,
/* Interval has not passed, skip cleaning. */
return 0;
+ /* Update timestamp representing when the cache was last cleaned.
+ Do it at the start to reduce the number of threads trying to do a
+ cleanup simultaniously. */
+ utime (interval_path, NULL);
+
/* Read max unused age value from config file. */
rc = debuginfod_config_cache(max_unused_path,
cache_default_max_unused_age_s, &st);
@@ -351,8 +356,6 @@ debuginfod_clean_cache(debuginfod_client *c,
fts_close (fts);
regfree (&re);
- /* Update timestamp representing when the cache was last cleaned. */
- utime (interval_path, NULL);
return 0;
}