1b1994897Sopenharmony_ci' Copyright (c) 2021-2022 Huawei Device Co., Ltd.
2b1994897Sopenharmony_ci' Licensed under the Apache License, Version 2.0 (the "License");
3b1994897Sopenharmony_ci' you may not use this file except in compliance with the License.
4b1994897Sopenharmony_ci' You may obtain a copy of the License at
5b1994897Sopenharmony_ci'
6b1994897Sopenharmony_ci' http://www.apache.org/licenses/LICENSE-2.0
7b1994897Sopenharmony_ci'
8b1994897Sopenharmony_ci' Unless required by applicable law or agreed to in writing, software
9b1994897Sopenharmony_ci' distributed under the License is distributed on an "AS IS" BASIS,
10b1994897Sopenharmony_ci' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11b1994897Sopenharmony_ci' See the License for the specific language governing permissions and
12b1994897Sopenharmony_ci' limitations under the License.
13b1994897Sopenharmony_ci
14b1994897Sopenharmony_ci@startuml
15b1994897Sopenharmony_ci
16b1994897Sopenharmony_ciskinparam monochrome true
17b1994897Sopenharmony_ci
18b1994897Sopenharmony_cititle Trigger GC at OOM
19b1994897Sopenharmony_ci
20b1994897Sopenharmony_ciautonumber
21b1994897Sopenharmony_ciparticipant AppThread1
22b1994897Sopenharmony_ciparticipant AppThread2
23b1994897Sopenharmony_ciparticipant Allocator
24b1994897Sopenharmony_ciparticipant GCTaskQueue
25b1994897Sopenharmony_ciparticipant GCThread
26b1994897Sopenharmony_ciparticipant GC
27b1994897Sopenharmony_ciAppThread1 -> Allocator: Request for the allocation
28b1994897Sopenharmony_ciAllocator -> Allocator: OOM
29b1994897Sopenharmony_ciAllocator -> GCTaskQueue: Add new GC task and wait for GC
30b1994897Sopenharmony_ciAllocator -> AppThread2: Suspend
31b1994897Sopenharmony_ciGCThread -> GCTaskQueue : Request for the task
32b1994897Sopenharmony_ciGCTaskQueue -> GCThread : GC task
33b1994897Sopenharmony_ciGCThread -> GC : GC task
34b1994897Sopenharmony_ciGC -> GC : GC running
35b1994897Sopenharmony_ciGC --> Allocator : GC finished
36b1994897Sopenharmony_ciAllocator -> AppThread2 : Resume
37b1994897Sopenharmony_ciAllocator -> AppThread1 : Return allocated memory
38b1994897Sopenharmony_ci@enduml
39