[Pkg-octave-devel] Bug#550823: Updating load-path cache based on modification times probably a bad idea (was: Race condition between Octave 3.2.3 and unlink())

Sébastien Villemot sebastien.villemot at ens.fr
Wed Oct 21 08:40:31 UTC 2009


Le mardi 20 octobre 2009 à 18:07 -0400, John W. Eaton a écrit :
> The symbol table code already includes the following:
> 
>   octave_value
>   symbol_table::fcn_info::fcn_info_rep::find (const octave_value_list& args,
> 					      bool local_funcs)
>   {
>     octave_value retval = xfind (args, local_funcs);
> 
>     if (! retval.is_defined ())
>       {
> 	// It is possible that the user created a file on the fly since
> 	// the last prompt or chdir, so try updating the load path and
> 	// searching again.
> 
> 	load_path::update ();
> 
> 	retval = xfind (args, local_funcs);
>       }
> 
>     return retval;
>   }
> 
> So if this is not sufficient, why not?  Is it because update always
> checks the time stamp?  In that case, maybe we need to have a "force"
> parameter to tell load_path::update to ignore the time stamp?  That
> would make this update operation slow, but it would only happen when a
> symbol is not found the first time around, so I wouldn't expect it to
> be a big problem.

This solution sounds good to me. It should fix the problem I encounter
with Dynare.

Also note that this granularity problem doesn't occur with Octave 3.0.
Something must have changed between the two releases, but I don't know
what since I haven't gone through Octave 3.0 source code.

Thanks,

-- 
Sébastien Villemot







More information about the Pkg-octave-devel mailing list