kernel/memoize: allow customizing memoize's default TTL of 3600 seconds; allow customizing kernel TTL via KERNEL_GIT_CACHE_TTL

This commit is contained in:
Ricardo Pardini
2023-08-24 20:37:32 +02:00
parent cac9030aab
commit 000f491617
2 changed files with 12 additions and 4 deletions

View File

@@ -73,11 +73,17 @@ function artifact_kernel_prepare_version() {
declare -A GIT_INFO_KERNEL=([GIT_SOURCE]="${KERNELSOURCE}" [GIT_REF]="${KERNELBRANCH}")
declare -i kernel_git_cache_ttl_seconds=3600 # by default
if [[ "${KERNEL_GIT_CACHE_TTL}" != "" ]]; then
kernel_git_cache_ttl_seconds="${KERNEL_GIT_CACHE_TTL}"
display_alert "Setting kernel git cache TTL to" "${kernel_git_cache_ttl_seconds}" "warn" # @TODO: info?
fi
if [[ "${KERNEL_SKIP_MAKEFILE_VERSION:-"no"}" == "yes" ]]; then
display_alert "Skipping Makefile version for kernel" "due to KERNEL_SKIP_MAKEFILE_VERSION=yes" "info"
run_memoized GIT_INFO_KERNEL "git2info" memoized_git_ref_to_info
memoize_cache_ttl=$kernel_git_cache_ttl_seconds run_memoized GIT_INFO_KERNEL "git2info" memoized_git_ref_to_info
else
run_memoized GIT_INFO_KERNEL "git2info" memoized_git_ref_to_info "include_makefile_body"
memoize_cache_ttl=$kernel_git_cache_ttl_seconds run_memoized GIT_INFO_KERNEL "git2info" memoized_git_ref_to_info "include_makefile_body"
fi
debug_dict GIT_INFO_KERNEL

View File

@@ -40,6 +40,8 @@ function run_memoized() {
mkdir -p "${disk_cache_dir}"
declare disk_cache_file="${disk_cache_dir}/${MEMO_DICT[MEMO_INPUT_HASH]}"
declare -i memoize_cache_ttl=${memoize_cache_ttl:-3600} # 1 hour default; can be overriden from outer scope
# Lock...
exec {lock_fd}> "${disk_cache_file}.lock" || exit_with_error "failed to lock"
flock "${lock_fd}" || exit_with_error "flock() failed"
@@ -48,8 +50,8 @@ function run_memoized() {
if [[ -f "${disk_cache_file}" ]]; then
declare disk_cache_file_mtime_seconds
disk_cache_file_mtime_seconds="$(stat -c %Y "${disk_cache_file}")"
# if disk_cache_file is older than 1 hour, delete it and continue.
if [[ "${disk_cache_file_mtime_seconds}" -lt "$(($(date +%s) - 3600))" ]]; then
# if disk_cache_file is older than the ttl, delete it and continue.
if [[ "${disk_cache_file_mtime_seconds}" -lt "$(($(date +%s) - memoize_cache_ttl))" ]]; then
display_alert "Deleting stale cache file" "${disk_cache_file}" "debug"
rm -f "${disk_cache_file}"
else