Skip to content
Snippets Groups Projects

ExpressionEvaluation: make IProxyLoader::load interfaces const

Merged Frank Winklmeier requested to merge fwinkl/athena:expreval2 into master
All threads resolved!

Another step in making ExpressionEvaluation pass the thread-checker. Here we make all the load interfaces const. This doesn't result in any functional changes. The last step will be to decide what to do with the non-const variableTypeFromString which is responsible for filling the accessor cache.

Relates to ATLASRECTS-7369.

cc @ssnyder @christos @jcatmore

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • :pencil: Build area was cleaned as per request posted in the DB. The full software build will be performed

  • This merge request affects 1 package:

    • PhysicsAnalysis/CommonTools/ExpressionEvaluation

    This merge request affects 13 files:

    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/ExpressionEvaluation/IProxyLoader.h
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/ExpressionEvaluation/MultipleProxyLoader.h
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/ExpressionEvaluation/SGNTUPProxyLoader.h
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/ExpressionEvaluation/SGxAODProxyLoader.h
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/ExpressionEvaluation/TestProxyLoader.h
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/ExpressionEvaluation/TriggerDecisionProxyLoader.h
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/ExpressionEvaluation/xAODVariableProxyLoaders.h
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/Root/MultipleProxyLoader.cxx
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/Root/TestProxyLoader.cxx
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/Root/xAODVariableProxyLoaders.cxx
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/src/SGNTUPProxyLoader.cxx
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/src/SGxAODProxyLoader.cxx
    • PhysicsAnalysis/CommonTools/ExpressionEvaluation/src/TriggerDecisionProxyLoader.cxx
  • :pencil: :scissors: The system determined that CI tests (with names matching "^CITest_SimulationRun(2|3)FullSim.*$") are not needed for this code change. They are not run. This is not an indicator to restart the job.

  • :white_check_mark: CI Result SUCCESS (hash 2962e33e)

    Athena AthAnalysis
    externals :white_check_mark: :white_check_mark:
    cmake :white_check_mark: :white_check_mark:
    make :white_check_mark: :white_check_mark:
    tests :white_check_mark: :white_check_mark:

    Full details available on this CI monitor view. Check the JIRA CI status board for known problems
    :white_check_mark: Athena: number of compilation errors 0, warnings 0
    :white_check_mark: AthAnalysis: number of compilation errors 0, warnings 0
    :pencil: For experts only: Jenkins output [CI-MERGE-REQUEST-CC7 62462]

    • Resolved by Frank Winklmeier

      Hey

      IProxyLoader::VariableType MultipleProxyLoader::variableTypeFromString(const std::string &varname)
      0037   {
      0038     if (m_varnameToProxyLoader.find(varname) != m_varnameToProxyLoader.end()) {
      0039       return m_varnameToProxyLoader[varname]->variableTypeFromString(varname);
      0040     }
      0041 
      0042     IProxyLoader::VariableType result;
      0043     bool foundProxyLoader(false);
      0044     for (const auto &proxyLoader : m_proxyLoaders) {
      0045       try {
      0046         result = proxyLoader->variableTypeFromString(varname);
      0047         if (result == VT_UNK) continue;
      0048       } catch (const std::runtime_error &) {
      0049         continue;
      0050       }
      0051       foundProxyLoader = true;
      0052       m_varnameToProxyLoader[varname] = proxyLoader;
      0053       break;
      0054     }
      0055     if (!foundProxyLoader) {
      0056       throw std::runtime_error("MultipleProxyLoader: unable to find valid proxy loader for "+varname);
      0057     }
      0058     return result;
      0059   }

      this I can see . Are also the other overrides problematic? Here we need prb either some lock or some concurrent map for m_varnameToProxyLoader?

      Edited by Christos Anastopoulos
  • Frank Winklmeier resolved all threads

    resolved all threads

  • mentioned in commit e5dd71c3

Please register or sign in to reply
Loading