Home
last modified time | relevance | path

Searched refs:Monitor (Results 1 – 25 of 42) sorted by relevance

12

/art/runtime/
Dmonitor_pool.h46 static Monitor* CreateMonitor(Thread* self, in CreateMonitor()
52 Monitor* mon = new Monitor(self, owner, obj, hash_code); in CreateMonitor()
60 static void ReleaseMonitor(Thread* self, Monitor* monitor) { in ReleaseMonitor()
78 static Monitor* MonitorFromMonitorId(MonitorId mon_id) { in MonitorFromMonitorId()
80 return reinterpret_cast<Monitor*>(mon_id << LockWord::kMonitorIdAlignmentShift); in MonitorFromMonitorId()
86 static MonitorId MonitorIdFromMonitor(Monitor* mon) { in MonitorIdFromMonitor()
94 static MonitorId ComputeMonitorId(Monitor* mon, Thread* self) { in ComputeMonitorId()
129 Monitor* CreateMonitorInPool(Thread* self,
135 void ReleaseMonitorToPool(Thread* self, Monitor* monitor);
142 Monitor* LookupMonitor(MonitorId mon_id) { in LookupMonitor()
[all …]
Dmonitor_pool.cc71 Monitor* last = reinterpret_cast<Monitor*>(reinterpret_cast<uintptr_t>(chunk) + in AllocateChunk()
78 Monitor* before = reinterpret_cast<Monitor*>(reinterpret_cast<uintptr_t>(last) - in AllocateChunk()
87 DCHECK(last == reinterpret_cast<Monitor*>(chunk)); in AllocateChunk()
108 Monitor* MonitorPool::CreateMonitorInPool(Thread* self, in CreateMonitorInPool()
122 Monitor* mon_uninitialized = first_free_; in CreateMonitorInPool()
129 Monitor* monitor = new(mon_uninitialized) Monitor(self, owner, obj, hash_code, id); in CreateMonitorInPool()
134 void MonitorPool::ReleaseMonitorToPool(Thread* self, Monitor* monitor) { in ReleaseMonitorToPool()
143 monitor->~Monitor(); in ReleaseMonitorToPool()
154 for (Monitor* mon : *monitors) { in ReleaseMonitorsToPool()
Dmonitor_pool_test.cc39 static void VerifyMonitor(Monitor* mon, Thread* self) { in VerifyMonitor()
49 std::vector<Monitor*> monitors; in TEST_F()
74 Monitor* mon = MonitorPool::CreateMonitor(self, self, nullptr, static_cast<int32_t>(i)); in TEST_F()
81 Monitor* mon = monitors[index]; in TEST_F()
97 Monitor* mon = MonitorPool::CreateMonitor(self, self, nullptr, in TEST_F()
105 for (Monitor* mon : monitors) { in TEST_F()
113 Monitor* mon = monitors[index]; in TEST_F()
121 for (Monitor* mon : monitors) { in TEST_F()
Dmonitor.cc84 uint32_t Monitor::lock_profiling_threshold_ = 0;
85 uint32_t Monitor::stack_dump_lock_profiling_threshold_ = 0;
87 void Monitor::Init(uint32_t lock_profiling_threshold, in Init()
97 Monitor::Monitor(Thread* self, Thread* owner, ObjPtr<mirror::Object> obj, int32_t hash_code) in Monitor() function in art::Monitor
127 Monitor::Monitor(Thread* self, in Monitor() function in art::Monitor
160 int32_t Monitor::GetHashCode() { in GetHashCode()
172 void Monitor::SetLockingMethod(Thread* owner) { in SetLockingMethod()
218 void Monitor::SetLockingMethodNoProxy(Thread *owner) { in SetLockingMethodNoProxy()
227 bool Monitor::Install(Thread* self) NO_THREAD_SAFETY_ANALYSIS { in Install()
278 Monitor::~Monitor() { in ~Monitor()
[all …]
Dmonitor-inl.h28 inline ObjPtr<mirror::Object> Monitor::GetObject() REQUIRES_SHARED(Locks::mutator_lock_) { in GetObject()
33 inline void Monitor::CheckLockOwnerRequest(Thread* self) { in CheckLockOwnerRequest()
43 inline uintptr_t Monitor::LockOwnerInfoChecksum(ArtMethod* m, uint32_t dex_pc, Thread* t) { in LockOwnerInfoChecksum()
49 inline void Monitor::SetLockOwnerInfo(ArtMethod* method, uint32_t dex_pc, Thread* t) { in SetLockOwnerInfo()
57 inline void Monitor::GetLockOwnerInfo(/*out*/ ArtMethod** method, in GetLockOwnerInfo()
Dmonitor_inflation.md1 Monitor inflation and the monitor pool
22 A `MonitorId` is logically a pointer to a `Monitor` structure. The `Monitor` data structure is
29 In the 64-bit case, `Monitor`s are stored in "chunks" of 4K bytes. The bottom bits of a
30 `MonitorId` are the index of the `Monitor` within its chunk. The remaining bits are used to find
39 `Monitor` slots, we can accommodate a large number of `Monitor`s, without ever allocating more than
42 ever move `Monitor` objects, which would significantly complicate the logic.
48 Monitor inflation
50 Monitors are inflated, and `Monitor` structs are allocated on demand, when an operation is
61 Monitor deflation
63 Monitors are deflated, and the `Monitor` structs associated with deflated monitors are reclaimed
Dmonitor.h59 class Monitor {
71 ~Monitor();
189 Monitor(Thread* self, Thread* owner, ObjPtr<mirror::Object> obj, int32_t hash_code)
191 Monitor(Thread* self, Thread* owner, ObjPtr<mirror::Object> obj, int32_t hash_code, MonitorId id)
231 Monitor* mon)
437 Monitor* next_free_ GUARDED_BY(Locks::allocated_monitor_ids_lock_);
444 DISALLOW_COPY_AND_ASSIGN(Monitor);
452 void Add(Monitor* m) REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(!monitor_list_lock_);
463 using Monitors = std::list<Monitor*, TrackingAllocator<Monitor*, kAllocatorTagMonitorList>>;
475 friend class Monitor; variable
Druntime_callbacks.h44 class Monitor; variable
123 virtual void MonitorContendedLocking(Monitor* mon) REQUIRES_SHARED(Locks::mutator_lock_) = 0;
125 virtual void MonitorContendedLocked(Monitor* mon) REQUIRES_SHARED(Locks::mutator_lock_) = 0;
133 virtual void MonitorWaitFinished(Monitor* m, bool timed_out)
225 void MonitorContendedLocking(Monitor* m) REQUIRES_SHARED(Locks::mutator_lock_);
226 void MonitorContendedLocked(Monitor* m) REQUIRES_SHARED(Locks::mutator_lock_);
229 void MonitorWaitFinished(Monitor* m, bool timed_out)
Dlock_word-inl.h37 inline Monitor* LockWord::FatLockMonitor() const { in FatLockMonitor()
53 inline LockWord::LockWord(Monitor* mon, uint32_t gc_state) in LockWord()
Dmonitor_objects_stack_visitor.cc46 ThreadState state = Monitor::FetchState(GetThread(), in VisitFrame()
72 Monitor::VisitLocks(this, VisitLockedObject, this, false); in VisitFrame()
Dmonitor_linux.cc21 void Monitor::LogContentionEvent(Thread*, uint32_t, uint32_t, ArtMethod*, uint32_t) { in LogContentionEvent()
Dlock_word.h34 class Monitor; variable
247 Monitor* FatLockMonitor() const;
253 LockWord(Monitor* mon, uint32_t gc_state);
Dmonitor_test.cc51 std::unique_ptr<Monitor> monitor_;
110 Monitor::Wait(self, obj.Get(), millis_, 0, true, ThreadState::kTimedWaiting); in Run()
155 Monitor::Wait(self, obj, millis_, 0, true, ThreadState::kTimedWaiting); in Run()
200 Monitor::Wait(self, obj, 10, 0, true, ThreadState::kTimedWaiting); in Run()
Dobject_lock.cc38 Monitor::Wait(self_, obj_.Get(), 0, 0, false, ThreadState::kWaiting); in WaitIgnoringInterrupts()
Dmonitor_android.cc35 void Monitor::LogContentionEvent(Thread* self, in LogContentionEvent()
Druntime_callbacks_test.cc471 void MonitorContendedLocking([[maybe_unused]] Monitor* mon) override in MonitorContendedLocking()
474 void MonitorContendedLocked([[maybe_unused]] Monitor* mon) override in MonitorContendedLocked()
484 void MonitorWaitFinished(Monitor* m, [[maybe_unused]] bool timed_out) override in MonitorWaitFinished()
513 Monitor::Wait( in TEST_F()
Druntime_callbacks.cc162 void RuntimeCallbacks::MonitorContendedLocking(Monitor* m) { in MonitorContendedLocking()
168 void RuntimeCallbacks::MonitorContendedLocked(Monitor* m) { in MonitorContendedLocked()
180 void RuntimeCallbacks::MonitorWaitFinished(Monitor* m, bool timeout) { in MonitorWaitFinished()
/art/test/596-monitor-inflation/
Dexpected-stdout.txt2 Monitor list grew by at least 4000 monitors
3 Monitor list shrank correctly
/art/test/003-omnibus-opcodes/src/
DMonitor.java21 public class Monitor { class
53 new Monitor().subTest(); in run()
DMain.java44 Monitor.run(); in run()
/art/test/167-visit-locks/
Dvisit_locks.cc56 Monitor::VisitLocks(this, Callback, nullptr); in Java_Main_testVisitLocks()
/art/test/003-omnibus-opcodes/
Dexpected-stdout.txt41 Monitor.run
/art/test/1932-monitor-events-misc/
Dexpected-stdout.txt62 Monitor usage in MonitorEnter: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], owne…
64 Monitor usage in MonitorEntered: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], ow…
66 Monitor usage in MonitorWait: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], owner…
68 Monitor usage in MonitorWaited: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], own…
Dexpected-stdout.jvm.txt63 Monitor usage in MonitorEnter: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], owne…
65 Monitor usage in MonitorEntered: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], ow…
67 Monitor usage in MonitorWait: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], owner…
69 Monitor usage in MonitorWaited: MonitorUsage{ monitor: NamedLock[Lock testMonitorInfoInEvents], own…
/art/runtime/mirror/
Dobject-inl.h79 return Monitor::GetLockOwnerThreadId(this); in GetLockOwnerThreadId()
83 return Monitor::MonitorEnter(self, this, /*trylock=*/false); in MonitorEnter()
87 return Monitor::MonitorEnter(self, this, /*trylock=*/true); in MonitorTryEnter()
91 return Monitor::MonitorExit(self, this); in MonitorExit()
95 Monitor::Notify(self, this); in Notify()
99 Monitor::NotifyAll(self, this); in NotifyAll()
103 Monitor::Wait(self, this, ms, ns, true, ThreadState::kTimedWaiting); in Wait()

12