2 participant ACM_Runtime
3 participant Participant
4 participant Participant_API
6 ACM_Runtime -> Participant: [ASYNC] Lock AC Element Instances for this AC Instance
8 loop over AC Element Instances in AC Instance
9 alt Does the primed Participant ID on this AC Element Instance\nmatch my Participant ID?
10 alt Is this AC Element Instance administrative state not UNLOCKED
11 ACM_Runtime <- Participant: [ASYNC] WARN: AC Element is not UNLOCKED
13 Participant -> Participant: Set AC Element Instance administrative state to SHUTTING_DOWN
14 Participant -> Participant_API: Lock AC Element Instance
15 activate Participant_API
16 Participant <- Participant_API: Lock AC Element Instance Response
17 deactivate Participant_API
18 alt AC Element locked successfully
19 Participant -> Participant: Set AC Element Instance administrative state to LOCKED
20 ACM_Runtime <- Participant: [ASYNC] INFO: AC Element has been locked
22 ACM_Runtime <- Participant: [ASYNC] ERROR: AC Element was not locked
26 note left of participant
27 Ignore this AC Element instance as its for another participant