Index: openacs-4/packages/acs-tcl/tcl/apm-init.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-init.tcl,v diff -u -r1.3.2.1 -r1.3.2.2 --- openacs-4/packages/acs-tcl/tcl/apm-init.tcl 2 Sep 2021 17:10:27 -0000 1.3.2.1 +++ openacs-4/packages/acs-tcl/tcl/apm-init.tcl 2 Sep 2021 18:35:54 -0000 1.3.2.2 @@ -12,18 +12,6 @@ nsv_array set apm_package_info [list] nsv_set apm_properties reload_level 0 -namespace eval apm { - - # Cache the singleton_p property of all packages. - db_foreach get_singleton { - select package_key, singleton_p - from apm_package_types - } { - set ::apm::package_singleton_p($package_key) $singleton_p - } - -} - # Local variables: # mode: tcl # tcl-indent-level: 4 Index: openacs-4/packages/acs-tcl/tcl/apm-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-procs.tcl,v diff -u -r1.114.2.33 -r1.114.2.34 --- openacs-4/packages/acs-tcl/tcl/apm-procs.tcl 2 Sep 2021 17:10:27 -0000 1.114.2.33 +++ openacs-4/packages/acs-tcl/tcl/apm-procs.tcl 2 Sep 2021 18:35:54 -0000 1.114.2.34 @@ -362,16 +362,12 @@ } { @return boolean telling whether a package is a singleton or not } { - if {[info exists ::apm::package_singleton_p($package_key)]} { - return $::apm::package_singleton_p($package_key) - } else { - # Fallback for code executed when the cache has not been - # populated, or for new packages before restart. - return [db_string check_singleton { + return [acs::per_thread_cache eval -key acs-tcl.apm-singleton-$package_key { + db_string check_singleton { select singleton_p from apm_package_types where package_key = :package_key - } -default f] - } + } -default f + }] } ad_proc -public apm_version_loaded_p { version_id } {