@startuml Participant Input as i Participant Thread as t Participant Action as a == acquire input data == group TIMER read-input t -> i : get segment(stride) activate i t <- i : [stride] deactivate i end group TIMER strides loop over cycle values in segment group TIMER cycle group TIMER phase t -> a : runCycle(cycle) activate a t <- a : result deactivate a end == additional phases == group TIMER phase loop until phases complete t -> a : runPhase(cycle) activate a t <- a : result deactivate a end end end end end # strides @enduml