Fixed issue in cluster mode, denoted by Khy H in the OpenACS forum
A new command "ad_parameter_cache_flush_dict" was introduced to handle the case, where a cluster node modifies a parameter value without having it read before. This case could lead to a coherency problem for parameter values.
Background:
This proc is necessary in cases, where a node writes a new parameter value before it has read the old one.
Since a plain "nsv_dict unset ad_param $key $parameter_name" raises an exception, when the pair does not exist, and we do not want to allow in cluster requests arbitrary "catch" commands, we allow "ad_parameter_cache_flush_dict" instead. Probably, the best solution is to add support for
The existing nsv_dict was built after Tcl's "dict unset", which does not have the "-nocomplain" option either. However, an atomic operation would certainly be preferable over an exists/unset pair, which is no acceptable solution.