Skip to content

fix: FunctorFactory Caching behaviour

Christoph Hasse requested to merge chasse_functorfactory into master

Fixes 2 Problems that were encountered when trying to force recompilation of functors via THOR_DISABLE_CACHE in the presence of a functor cache (e.g. MooreCache).

Both problems are caused because the old functor cache is loaded during the lookup of e.g. some LoKi functors.

  1. C++ symbols of the newly created library were not used because symbols with the same name were already in the global namespace -> see commit about RTLD_DEEPBIND
  2. Gaudi PluginService doesn't let me overwrite an old Functor, so if the hash of a functor is already registered, I can't update that entry. Currently implemented a workaround that forces a different hash, but will follow up with a Gaudi MR.

cc @tnanut @wouter as I've suggested to both of you before to use THOR_DISABLE_CACHE before. I've noticed during some development that some changes weren't getting picked up as expected and when digging into it noticed that in specific cases THOR_DISABLE_CACHE wasn't working as expected. So just sending a ping your way if you've encountered this too and were wondering what is going wrong.
After this MR THOR_DISABLE_CACHE should work excactly as expected again 😊

Edited by Christoph Hasse

Merge request reports