apm_mark_version_for_reload

one of the documented procedures in this installation of the ACS
Usage:
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).

Saves 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]
Defined in: /web/philip/packages/acs-core/apm-procs.tcl

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
    }


philg@mit.edu