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
Branch
thread_safety
Lint
No Lint Coverage
Unit
No Test Coverage
Build Status
Buildable 346
Build 346: arc lint + arc unit

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.