Page MenuHomeHEPForge

Introduce thread safety
ClosedPublic

Authored by tlatham on Oct 4 2024, 4:45 PM.
Tags
  • Restricted Project
Referenced Files
F19300109: D132.1759161767.diff
Sun, Sep 28, 5:02 PM
F19295171: D132.1759157095.diff
Sun, Sep 28, 3:44 PM
F19295033: D132.1759157039.diff
Sun, Sep 28, 3:43 PM
F19266378: D132.1759134044.diff
Sun, Sep 28, 9:20 AM
F19251259: D132.1759121332.diff
Sun, Sep 28, 5:48 AM
F19239546: D132.1759113483.diff
Sun, Sep 28, 3:38 AM
F19222379: D132.1759099627.diff
Sat, Sep 27, 11:47 PM
Subscribers
Restricted Project

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.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.