is_locked Function

public function is_locked(cache_dir, project_name) result(locked)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: cache_dir
character(len=*), intent(in) :: project_name

Return Value logical


Source Code

    function is_locked(cache_dir, project_name) result(locked)
        character(len=*), intent(in) :: cache_dir, project_name
        logical :: locked
        character(len=512) :: lock_file

        lock_file = get_lock_file_path(cache_dir, project_name)

        ! Use system utilities for cross-platform lock detection
        ! This uses a platform-agnostic file check instead of shell commands
        locked = sys_file_exists(lock_file)

        ! Only check for stale locks when explicitly requested, not during normal checks
        ! This prevents race conditions where a fresh lock is incorrectly considered stale

    end function is_locked