Page MenuHomeHEPForge

Introduce thread safety
ClosedPublic

Authored by tlatham on Oct 4 2024, 4:45 PM.

Details

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.

Diff Detail

Repository
rEVTGEN evtgen
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

tlatham created this revision.
This revision is now accepted and ready to land.Oct 7 2024, 10:01 AM
  • Update list of authors/contributors
tlatham changed the visibility from "All Users" to "Public (No Login Required)".Oct 7 2024, 5:55 PM
tlatham changed the edit policy from "All Users" to "Restricted Project (Project)".
tlatham added a project: Restricted Project.
tlatham added a subscriber: Restricted Project.