package Ġcom . on eli ang . k tx . frame . parallel Ċ Ċ import Ġcom . on eli ang . k tx . frame . coroutine . Coroutine Ċ import Ġcom . on eli ang . k tx . util . logging . Logger Manager Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . launch Ċ Ċ internal Ġclass ĠDefault Parallel Context ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcoroutine : ĠCor outine , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġparallel Job Step : ĠParallel Job Step < Any >, ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġparent Parallel Context Action : ĠParallel Context Action Ġ= ĠParallel Context Action . NONE , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġparallel Job : ĠParallel Job < Any >) Ġ: ĠParallel Context < Any > Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLogger Manager . getLogger ( Default Parallel Context :: class ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġcollect ( value : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . parallel Job . parallel Job Configuration . async ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . coroutine . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠParallel Context Util . collect For Parallel Processor ( this . coroutine , Ġthis . parallel Job , Ġthis . parallel Job Step , Ġvalue , Ġthis . parent Parallel Context Action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠParallel Context Util . collect For Parallel Processor ( this . coroutine , Ġthis . parallel Job , Ġthis . parallel Job Step , Ġvalue , Ġthis . parent Parallel Context Action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }