HomeHEPForge

Introduce thread safety

Description

Introduce thread safety

Summary:
Make the necessary changes to allow the safe use in a multi-threaded environment

  • Protect statics: make them const or thread_local
  • Improve const-correctness of many functions
  • Make thread_local the RNG, particle property table, external factory, decay tables, and sym tables
  • Add explicit mutexing to non-thread-safe externals (Sherpa, Tauola, Photos)
  • Propagate the EvtGen seed to the Fortran RNG in Tauola
  • Some fixes to EvtBtoXsEtap and EvtBtoXsgamma
  • Reorganise test code for multi-threading

Test Plan:
Tests give identical results to master branch.
Tests give identical results regardless of number of threads used.

Reviewers: jback, kreps

Reviewed By: jback, kreps

Differential Revision: https://phab.hepforge.org/D132

Details

Provenance
tlathamAuthored on Oct 7 2024, 2:36 PM
tlathamPushed on Oct 7 2024, 2:44 PM
Reviewer
jback
Differential Revision
D132: Introduce thread safety
Parents
rEVTGEN1166f2a88b34: Update list of authors/contributors
rEVTGENdc8f45d4786a: Tauola tests
Branches
Unknown
Tags
Unknown

Merged Changes