Skip to content

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 methodssafedepending on the particular use (i.e it depends where and how they are used).

Edited by Christos Anastopoulos

Merge request reports