HomeHEPForge

Prototype changes for multithreading

Description

Prototype changes for multithreading

Protect statics:
In general, all statics should be either const or thread_local to ensure
thread safety of functions

Add some const qualifiers:
Making more member functions const to clarify where state is hidden

Version with thread locals:
Independent decay tables, and hence sym tables
This should be mostly complete in EvtGenBase at least

Add explicit mutexing to externals:
Tauola and Photos libraries are not thread safe so must be called by
only one thread
ExternalGenFactory is shared by all threads and its internals can be
modified by only one thread at a time, so this is also mutexed

Details

Provenance
Heather Ratcliffe (ridcully) <h.ratcliffe@warwick.ac.uk>Authored on Feb 16 2022, 2:08 PM
tlathamCommitted on Oct 7 2024, 9:43 AM
tlathamPushed on Oct 7 2024, 2:44 PM
Differential Revision
D132: Introduce thread safety
Parents
rEVTGENdc8f45d4786a: Tauola tests
Branches
Unknown
Tags
Unknown