Page MenuHomeHEPForge

Introduce thread safety
ClosedPublic

Authored by tlatham on Fri, Oct 4, 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 347
Build 347: arc lint + arc unit

Event Timeline

tlatham created this revision.
This revision is now accepted and ready to land.Mon, Oct 7, 10:01 AM
  • Update list of authors/contributors
tlatham changed the visibility from "All Users" to "Public (No Login Required)".Mon, Oct 7, 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.