/art/test/004-ThreadStress/src/ |
H A D | Main.java | 55 final Object lock = new Object(); 99 threadStresses[t] = new Main(lock, t, operations); 157 synchronized (lock) { 158 lock.notifyAll(); 175 private final Object lock; field in class:Main 180 private Main(Object lock, int id, Operation[] operations) { argument 181 this.lock = lock; 216 synchronized (lock) { 218 lock [all...] |
/art/runtime/gc/ |
H A D | reference_queue.h | 47 explicit ReferenceQueue(Mutex* lock); 49 // since it uses a lock to avoid a race between checking for the references presence and adding 54 // reference IsEnqueueable. Not thread safe, used when mutators are paused to minimize lock
|
H A D | reference_queue.cc | 28 ReferenceQueue::ReferenceQueue(Mutex* lock) : lock_(lock), list_(nullptr) { argument
|
/art/compiler/utils/ |
H A D | arena_allocator.cc | 151 : lock_("Arena pool lock"), 167 MutexLock lock(self, lock_); 182 MutexLock lock(Thread::Current(), lock_); 201 MutexLock lock(self, lock_);
|
H A D | swap_space.cc | 69 lock_("SwapSpace lock", static_cast<LockLevel>(LockLevel::kDefaultMutexLevel - 1)) { 105 MutexLock lock(Thread::Current(), lock_); 146 MutexLock lock(Thread::Current(), lock_); 164 MutexLock lock(Thread::Current(), lock_);
|
H A D | dedupe_set.h | 35 // supports the lock being sharded. 89 MutexLock lock(self, *lock_[shard_bin]); 105 oss << set_name << " lock " << i;
|
/art/runtime/native/ |
H A D | java_lang_Thread.cc | 129 // thread list lock to avoid this, as setting the thread name causes mutator to lock/unlock 133 // Take suspend thread lock to avoid races with threads trying to suspend this one. 167 mirror::Object* lock = soa.Decode<mirror::Object*>(java_lock); local 168 Monitor::Wait(Thread::Current(), lock, ms, ns, true, kSleeping); local
|
/art/runtime/entrypoints/quick/ |
H A D | quick_trampoline_entrypoints.cc | 1610 uint64_t artQuickGenericJniEndJNIRef(Thread* self, uint32_t cookie, jobject l, jobject lock) { argument 1611 if (lock != nullptr) { 1612 return reinterpret_cast<uint64_t>(JniMethodEndWithReferenceSynchronized(l, cookie, lock, self)); 1618 void artQuickGenericJniEndJNINonRef(Thread* self, uint32_t cookie, jobject lock) { argument 1619 if (lock != nullptr) { 1620 JniMethodEndSynchronized(cookie, lock, self); 1691 jobject lock = called->IsSynchronized() ? visitor.GetFirstHandleScopeJObject() : nullptr; local 1693 artQuickGenericJniEndJNIRef(self, cookie, nullptr, lock); 1695 artQuickGenericJniEndJNINonRef(self, cookie, lock); 1719 jobject lock local [all...] |
/art/runtime/arch/ |
H A D | stub_test.cc | 614 LockWord lock = obj->GetLockWord(false); local 615 LockWord::LockState old_state = lock.GetState(); 623 EXPECT_EQ(lock_after.ThinLockCount(), 0U); // Thin lock starts count at zero 628 // Check we're at lock count i 636 // Force a fat lock by running identity hashcode to fill up lock word. 671 // NO_THREAD_SAFETY_ANALYSIS as we do not want to grab exclusive mutator lock for MonitorInfo. 683 static constexpr size_t kNumberOfLocks = 10; // Number of objects = lock 687 LockWord lock = obj->GetLockWord(false); variable 688 LockWord::LockState old_state = lock 749 bool lock; // Whether to lock or unlock in this step. variable [all...] |
/art/runtime/ |
H A D | debugger.h | 62 lock("a DebugInvokeReq lock", kBreakpointInvokeLock), 63 cond("a DebugInvokeReq condition variable", lock) { 88 Mutex lock DEFAULT_MUTEX_ACQUIRED_AFTER; 89 ConditionVariable cond GUARDED_BY(lock); 686 // lock.
|
H A D | profiler.h | 104 explicit ProfileSampleResults(Mutex& lock); 119 Mutex& lock_; // Reference to the main profiler lock - we don't need two of them.
|
H A D | class_linker.cc | 172 : dex_lock_("ClassLinker dex lock", kDefaultMutexLevel), 869 // We are loading or creating one in the future. Time to set up the file lock. 886 // TODO: What to lock here? 943 // Definitely need to lock now. 1975 ObjectLock<mirror::Class> lock(self, h_class); 1978 lock.WaitIgnoringInterrupts(); 1994 ObjectLock<mirror::Class> lock(self, h_class); 2003 lock.WaitIgnoringInterrupts(); 2258 ObjectLock<mirror::Class> lock(self, klass); 2260 // An exception occured during load, set status to erroneous while holding klass' lock i [all...] |
H A D | profiler.cc | 90 // of which caller, the mutator lock must be held. 134 // Grab the mutator lock (shared access). 259 ScopedObjectAccess soa(self); // Acquire the mutator lock. 286 LOG(ERROR) << "Failed to lock profile file " << full_name; 394 wait_lock_("Profile wait lock"), 405 // We require mutator lock since some statistics will be updated here. 472 ProfileSampleResults::ProfileSampleResults(Mutex& lock) : lock_(lock), num_samples_(0), argument
|
H A D | thread.cc | 583 // If we're in kStarting, we won't have a thin lock id or tid yet. 673 // Grab the suspend_count lock and copy the current set of 675 // function will also grab this lock so we prevent a race between setting 686 // Outside the lock, run all the checkpoint functions that 943 // Getting the identity hashcode here would result in lock inflation and suspension of the 1189 // Thread.join() is implemented as an Object.wait() on the Thread.lock object. Signal anyone 1191 mirror::Object* lock = local 1193 // (This conditional is only needed for tests, where Thread.lock won't have been set.) 1194 if (lock != nullptr) { 1196 Handle<mirror::Object> h_obj(hs.NewHandle(lock)); [all...] |
H A D | class_linker.h | 515 ObjectLock<mirror::Class>& lock); 627 // the file to be written, which is assumed to be under a lock. 685 // in the table to make it resolved. The thread doing resolution must notify on the class' lock
|
H A D | thread_list.cc | 336 // Block on the mutator lock until all Runnable threads release their share of access. 561 // There's a race in inflating a lock and the owner giving up ownership and then dying. 642 // Block on the mutator lock until all Runnable threads release their share of access then 689 MutexLock mu(self, pReq->lock); 695 // suspend count lock. 708 // just long enough to try to grab the thread-suspend lock). 726 // Threads can't resume if we exclusively hold the mutator lock.
|
H A D | debugger.cc | 790 // Suspend all threads and exclusively acquire the mutator lock. Set the state of the thread 925 // Ensure all threads are suspended while we read objects' lock words. 960 // TODO: Enable annotalysis. We know lock is held in constructor, but abstraction confuses 1016 // Add() requires the thread_list_lock_ not held to avoid the lock 1159 // TODO: Enable annotalysis. We know lock is held in constructor, but abstraction confuses 2280 // TODO: Enable annotalysis. We know lock is held in constructor, but abstraction confuses 2322 // TODO: Enable annotalysis. We know lock is held in constructor, but abstraction confuses 2392 // Suspend thread to build stack trace. Take suspend thread lock to avoid races with threads 2439 // TODO: Enable annotalysis. We know lock is held in constructor, but abstraction confuses 2482 // TODO: Enable annotalysis. We know lock i [all...] |
/art/compiler/utils/x86/ |
H A D | assembler_x86.h | 426 X86Assembler* lock(); 448 lock()->cmpxchgl(address, reg);
|
H A D | assembler_x86.cc | 1206 X86Assembler* X86Assembler::lock() { function in class:art::x86::X86Assembler
|
/art/compiler/utils/x86_64/ |
H A D | assembler_x86_64.h | 467 X86_64Assembler* lock(); 490 lock()->cmpxchgl(address, reg);
|
H A D | assembler_x86_64.cc | 1402 X86_64Assembler* X86_64Assembler::lock() { function in class:art::x86_64::X86_64Assembler
|
/art/compiler/driver/ |
H A D | compiler_driver.cc | 85 : stats_lock_("AOT compilation statistics lock"), 350 freezing_constructor_lock_("freezing constructor lock"), 351 compiled_classes_lock_("compiled classes lock"), 352 compiled_methods_lock_("compiled method lock"), 1604 // fields are assigned within the lock held for class initialization. Conservatively assume 1841 ObjectLock<mirror::Class> lock(soa.Self(), klass); 1889 // deadlock problems. For example, a parent class is initialized (holding its lock) that 1891 // sub-class' lock. While on a second thread the sub-class is initialized (holding its lock) 1893 // parent-to-child and a child-to-parent lock orderin [all...] |
/art/runtime/arch/x86/ |
H A D | quick_entrypoints_x86.S | 536 movl LOCK_WORD_OFFSET(%eax), %ecx // ecx := lock word 541 jnz .Lalready_thin // lock word contains a thin lock 544 xor %eax, %eax // eax == 0 for comparison with lock word in cmpxchg 545 lock cmpxchg %edx, LOCK_WORD_OFFSET(%ecx) 552 cmpw %cx, %dx // do we hold the lock already? 557 movl %ecx, LOCK_WORD_OFFSET(%eax) // update lockword, cmpxchg not necessary as we hold lock 579 movl LOCK_WORD_OFFSET(%eax), %ecx // ecx := lock word 582 jnz .Lslow_unlock // lock word contains a monitor
|
/art/runtime/arch/x86_64/ |
H A D | quick_entrypoints_x86_64.S | 867 movl LOCK_WORD_OFFSET(%edi), %ecx // ecx := lock word. 872 jnz .Lalready_thin // Lock word contains a thin lock. 874 xor %eax, %eax // eax == 0 for comparison with lock word in cmpxchg 875 lock cmpxchg %edx, LOCK_WORD_OFFSET(%edi) 879 cmpw %cx, %dx // do we hold the lock already? 884 movl %ecx, LOCK_WORD_OFFSET(%edi) // update lockword, cmpxchg not necessary as we hold lock 898 movl LOCK_WORD_OFFSET(%edi), %ecx // ecx := lock word 901 jnz .Lslow_unlock // lock word contains a monitor
|
/art/runtime/arch/arm/ |
H A D | quick_entrypoints_arm.S | 371 * possibly null object to lock. 392 cbnz r2, .Lslow_lock @ lock word and self thread id's match -> recursive lock 394 add r2, r1, #65536 @ increment count in lock word placing in r2 for storing 397 str r2, [r0, #LOCK_WORD_OFFSET] @ no need for strex as we hold the lock 411 * r0 holds the possibly null object to lock. 422 cbnz r3, .Lslow_unlock @ do lock word and self thread id's match?
|