TrkGeometry : Add ATLAS_CHECK_THREAD_SAFETY
TrkGeometry
:
- Add ATLAS_CHECK_THREAD_SAFETY,
- remove mutable,
- mark all not thread safe methods explicitly,
- provide non-const overload where possible.
Quite a few ATLAS_NOT_THREAD_SAFE
methods remain (most have names like set...
,move...
,register...
etc).
Quite a few of them have safer overloads e.g setFoo (val)
vs setFoo ATLAS_NOT_THREAD_SAFE(val) const
.
For the high level manipulator or high level geometry objects like TrackingVolume
another complication is that they manipulate const Layers
, const Surfaces
.
In terms of geometry building where a new one is created / initialised
these might not be pressing issues (as the builders typically create/own all of these object). But can be if a client tries to modify what the builders have produced.
Anyhow, this should mark the current status and then one could try to make some of the unsafe
methodssafe
depending on the particular use (i.e it depends where and how they are used).