apm_mark_version_for_reload version_id { file_info_var " " }What it does:
Examines all tcl_procs files in package version $version_id; if any have changed since they were loaded, marks (in the apm_reload array) that they must be reloaded by each Tcl interpreter (using the apm_reload_any_changed_libraries procedure).Defined in: /web/philip/packages/acs-core/apm-procs.tclSaves a list of files that have changed (and thus marked to be reloaded) in the variable named
$file_info_var, if provided. Each element of this list is of the form:[list $file_id $path]
Source code:
if { ![empty_string_p $file_info_var] } {
upvar $file_info_var file_info
}
set files [apm_version_file_list -type "tcl_procs" $version_id]
db_1row "select package_key from apm_package_version_info where version_id = $version_id"
set changed_files [list]
set file_info [list]
db_foreach "
select file_id, path
from apm_package_files
where version_id = $version_id
and file_type = 'tcl_procs'
order by path
" {
set full_path "[acs_package_root_dir $package_key]/$path"
set relative_path "$package_key/$path"
# If the file exists, and either has never been loaded or has an mtime
# which differs the mtime it had when last loaded, mark to be loaded.
if { [file isfile $full_path] } {
set mtime [file mtime $full_path]
if { ![nsv_exists apm_library_mtime $relative_path] || [nsv_get apm_library_mtime $relative_path] != $mtime } {
lappend changed_files $relative_path
lappend file_info [list $file_id $relative_path]
nsv_set apm_library_mtime $relative_path $mtime
}
}
}
if { [llength $changed_files] > 0 } {
set reload [nsv_incr apm_properties reload_level]
nsv_set apm_reload $reload $changed_files
}