Project

General

Profile

Feature #15375

Milestone #15372: art multi-threading phase 1

Modify all registries for appropriate thread safety

Added by Marc Paterno over 2 years ago. Updated about 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Infrastructure
Target version:
Start date:
01/30/2017
Due date:
% Done:

100%

Estimated time:
48.00 h
Spent time:
Scope:
Internal
Experiment:
-
SSI Package:
art
Duration:

Description

const thread-safety is often (but not always) sufficient. We will assume that most registries are immutable in multi-threaded operation of the framework. Most of the work is for ParameterSetRegistry.

History

#1 Updated by Kyle Knoepfel over 2 years ago

  • Status changed from New to Accepted

#2 Updated by Kyle Knoepfel over 2 years ago

  • Assignee set to Kyle Knoepfel

#3 Updated by Kyle Knoepfel over 2 years ago

  • % Done changed from 0 to 80
  • Category set to Infrastructure
  • Status changed from Accepted to Assigned
  • SSI Package art added

The registries have been adjusted to be thread-safe. More testing is required before this issue will be marked as resolved.

#4 Updated by Kyle Knoepfel over 2 years ago

  • Status changed from Assigned to Resolved
  • % Done changed from 80 to 100

All registries are now deemed to be used in a thread-safe manner, both in a single-threaded-only environment, and also in a multi-threaded environment. The registries that are likely to be updated in a multi-threaded environment in the foreseeable future include:

  • art::ParentageRegistry
  • art::ProcessHistoryRegistry
  • fhicl::ParameterSetRegistry

The following registries will likely be updated only at process start-up and during the opening of any input files:

  • art::BranchIDListRegistry
  • art::MasterProductRegistry/art::ProductMetaData

The following registry was removed:

  • art::MetaDataAccess

The following registry is currently unused:

  • art::ProcessConfigurationRegistry

Implemented with the following commits:

#5 Updated by Kyle Knoepfel over 2 years ago

  • Target version set to 1209

#6 Updated by Kyle Knoepfel about 2 years ago

  • Target version changed from 1209 to 2.07.01

#7 Updated by Kyle Knoepfel about 2 years ago

  • Status changed from Resolved to Closed


Also available in: Atom PDF