#include <thread_registry.h>
Definition at line 23 of file thread_registry.h.
◆ ThreadRegistry()
dart::ThreadRegistry::ThreadRegistry |
( |
| ) |
|
|
inline |
Definition at line 25 of file thread_registry.h.
26 : threads_lock_(),
27 active_list_(nullptr),
28 free_list_(nullptr),
29 active_isolates_count_(0) {}
◆ ~ThreadRegistry()
dart::ThreadRegistry::~ThreadRegistry |
( |
| ) |
|
Definition at line 12 of file thread_registry.cc.
12 {
13
14 {
16
17 ASSERT(active_list_ ==
nullptr);
18
19
20 while (free_list_ != nullptr) {
21 Thread* thread = free_list_;
22 free_list_ = thread->next_;
23 delete thread;
24 }
25 }
26}
Monitor * threads_lock() const
◆ AcquireMarkingStacks()
void dart::ThreadRegistry::AcquireMarkingStacks |
( |
| ) |
|
Definition at line 83 of file thread_registry.cc.
83 {
85 Thread* thread = active_list_;
86 while (thread != nullptr) {
87 if (!thread->BypassSafepoints()) {
88 thread->AcquireMarkingStacks();
89 }
90 thread = thread->next_;
91 }
92}
◆ active_isolates_count()
intptr_t dart::ThreadRegistry::active_isolates_count |
( |
| ) |
|
|
inline |
Definition at line 43 of file thread_registry.h.
43{
return active_isolates_count_.
load(); }
T load(std::memory_order order=std::memory_order_relaxed) const
◆ FlushMarkingStacks()
void dart::ThreadRegistry::FlushMarkingStacks |
( |
| ) |
|
Definition at line 106 of file thread_registry.cc.
106 {
108 Thread* thread = active_list_;
109 while (thread != nullptr) {
110 if (!thread->BypassSafepoints() && thread->is_marking()) {
111 thread->FlushMarkingStacks();
112 ASSERT(thread->is_marking());
113 }
114 thread = thread->next_;
115 }
116}
◆ ForEachThread()
Definition at line 62 of file thread_registry.cc.
63 {
65 Thread* thread = active_list_;
66 while (thread != nullptr) {
68 thread = thread->next_;
69 }
70}
FlKeyEvent uint64_t FlKeyResponderAsyncCallback callback
◆ PrintJSON()
void dart::ThreadRegistry::PrintJSON |
( |
JSONStream * |
stream | ) |
const |
◆ ReleaseMarkingStacks()
void dart::ThreadRegistry::ReleaseMarkingStacks |
( |
| ) |
|
Definition at line 94 of file thread_registry.cc.
94 {
96 Thread* thread = active_list_;
97 while (thread != nullptr) {
98 if (!thread->BypassSafepoints()) {
99 thread->ReleaseMarkingStacks();
100 ASSERT(!thread->is_marking());
101 }
102 thread = thread->next_;
103 }
104}
◆ ReleaseStoreBuffers()
void dart::ThreadRegistry::ReleaseStoreBuffers |
( |
| ) |
|
Definition at line 72 of file thread_registry.cc.
72 {
74 Thread* thread = active_list_;
75 while (thread != nullptr) {
76 if (!thread->BypassSafepoints()) {
78 }
79 thread = thread->next_;
80 }
81}
void ReleaseStoreBuffer()
◆ threads_lock()
Monitor * dart::ThreadRegistry::threads_lock |
( |
| ) |
const |
|
inline |
◆ VisitObjectPointers()
Definition at line 44 of file thread_registry.cc.
47 {
49 Thread* thread = active_list_;
50 while (thread != nullptr) {
51 if (thread->isolate_group() == isolate_group_of_interest) {
52
53
54 if (!thread->IsDartMutatorThread()) {
56 }
57 }
58 thread = thread->next_;
59 }
60}
void VisitObjectPointers(ObjectPointerVisitor *visitor, ValidationPolicy validate_frames)
◆ SafepointHandler
◆ Thread
The documentation for this class was generated from the following files: