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 }