' Copyright (c) 2021-2022 Huawei Device Co., Ltd. ' Licensed under the Apache License, Version 2.0 (the "License"); ' you may not use this file except in compliance with the License. ' You may obtain a copy of the License at ' ' http://www.apache.org/licenses/LICENSE-2.0 ' ' Unless required by applicable law or agreed to in writing, software ' distributed under the License is distributed on an "AS IS" BASIS, ' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ' See the License for the specific language governing permissions and ' limitations under the License. @startuml skinparam monochrome true title Generational GC(non-concurrent) [*] -> PreForkInit PreForkInit -> NormalExecution : forked NormalExecution -> STWState STWState --> NormalExecution NormalExecution -> [*] state NormalExecution { [*] -> CodeExecution1 -- [*] -> CodeExecutionN -- state "GCThread Idle" as GCIdle [*] -> GCIdle -- [*] -> CompilerThread } state STWState { [*] -> CodeExecution1Suspended -- [*] -> CodeExecutionNSuspended -- state "GCThread is active in STW mode" as GCSTW [*] -> GCSTW -- state "Compiler thread will be blocked at the Mutator Lock" as CompilerThreadWillBeBlocked [*] -> CompilerThreadWillBeBlocked } @enduml