Lines Matching refs:gDvm
253 gDvm.sumThreadSuspendCount += delta; in dvmAddToThreadSuspendCount()
266 if (pthread_key_create(&gDvm.pthreadKeySelf, threadExitCheck) != 0) { in dvmThreadStartup()
272 if (pthread_getspecific(gDvm.pthreadKeySelf) != NULL) in dvmThreadStartup()
276 dvmInitMutex(&gDvm.threadListLock); in dvmThreadStartup()
277 pthread_cond_init(&gDvm.threadStartCond, NULL); in dvmThreadStartup()
279 pthread_cond_init(&gDvm.vmExitCond, NULL); in dvmThreadStartup()
280 dvmInitMutex(&gDvm._threadSuspendLock); in dvmThreadStartup()
281 dvmInitMutex(&gDvm.threadSuspendCountLock); in dvmThreadStartup()
282 pthread_cond_init(&gDvm.threadSuspendCountCond, NULL); in dvmThreadStartup()
284 dvmInitMutex(&gDvm.deadlockHistoryLock); in dvmThreadStartup()
294 gDvm.threadSleepMon = dvmCreateMonitor(NULL); in dvmThreadStartup()
296 gDvm.threadIdMap = dvmAllocBitVector(kMaxThreadId, false); in dvmThreadStartup()
298 thread = allocThread(gDvm.stackSize); in dvmThreadStartup()
310 gDvm.threadList = thread; in dvmThreadStartup()
313 gDvm.preciseMethods = dvmPointerSetAlloc(200); in dvmThreadStartup()
332 gDvm.classJavaLangThread = in dvmThreadObjStartup()
334 gDvm.classJavaLangVMThread = in dvmThreadObjStartup()
336 gDvm.classJavaLangThreadGroup = in dvmThreadObjStartup()
338 if (gDvm.classJavaLangThread == NULL || in dvmThreadObjStartup()
339 gDvm.classJavaLangThreadGroup == NULL || in dvmThreadObjStartup()
340 gDvm.classJavaLangThreadGroup == NULL) in dvmThreadObjStartup()
350 gDvm.offJavaLangThread_vmThread = in dvmThreadObjStartup()
351 dvmFindFieldOffset(gDvm.classJavaLangThread, in dvmThreadObjStartup()
353 gDvm.offJavaLangThread_group = in dvmThreadObjStartup()
354 dvmFindFieldOffset(gDvm.classJavaLangThread, in dvmThreadObjStartup()
356 gDvm.offJavaLangThread_daemon = in dvmThreadObjStartup()
357 dvmFindFieldOffset(gDvm.classJavaLangThread, "daemon", "Z"); in dvmThreadObjStartup()
358 gDvm.offJavaLangThread_name = in dvmThreadObjStartup()
359 dvmFindFieldOffset(gDvm.classJavaLangThread, in dvmThreadObjStartup()
361 gDvm.offJavaLangThread_priority = in dvmThreadObjStartup()
362 dvmFindFieldOffset(gDvm.classJavaLangThread, "priority", "I"); in dvmThreadObjStartup()
364 if (gDvm.offJavaLangThread_vmThread < 0 || in dvmThreadObjStartup()
365 gDvm.offJavaLangThread_group < 0 || in dvmThreadObjStartup()
366 gDvm.offJavaLangThread_daemon < 0 || in dvmThreadObjStartup()
367 gDvm.offJavaLangThread_name < 0 || in dvmThreadObjStartup()
368 gDvm.offJavaLangThread_priority < 0) in dvmThreadObjStartup()
374 gDvm.offJavaLangVMThread_thread = in dvmThreadObjStartup()
375 dvmFindFieldOffset(gDvm.classJavaLangVMThread, in dvmThreadObjStartup()
377 gDvm.offJavaLangVMThread_vmData = in dvmThreadObjStartup()
378 dvmFindFieldOffset(gDvm.classJavaLangVMThread, "vmData", "I"); in dvmThreadObjStartup()
379 if (gDvm.offJavaLangVMThread_thread < 0 || in dvmThreadObjStartup()
380 gDvm.offJavaLangVMThread_vmData < 0) in dvmThreadObjStartup()
393 meth = dvmFindVirtualMethodByDescriptor(gDvm.classJavaLangThread, "run", "()V"); in dvmThreadObjStartup()
398 gDvm.voffJavaLangThread_run = meth->methodIndex; in dvmThreadObjStartup()
403 meth = dvmFindVirtualMethodByDescriptor(gDvm.classJavaLangThreadGroup, in dvmThreadObjStartup()
409 gDvm.voffJavaLangThreadGroup_removeThread = meth->methodIndex; in dvmThreadObjStartup()
419 if (gDvm.threadList != NULL) { in dvmThreadShutdown()
426 freeThread(gDvm.threadList); in dvmThreadShutdown()
427 gDvm.threadList = NULL; in dvmThreadShutdown()
430 dvmFreeBitVector(gDvm.threadIdMap); in dvmThreadShutdown()
434 pthread_key_delete(gDvm.pthreadKeySelf); in dvmThreadShutdown()
451 dvmLockMutex(&gDvm.threadSuspendCountLock); in lockThreadSuspendCount()
459 dvmUnlockMutex(&gDvm.threadSuspendCountLock); in unlockThreadSuspendCount()
500 dvmLockMutex(&gDvm.threadListLock); in dvmLockThreadList()
511 dvmUnlockMutex(&gDvm.threadListLock); in dvmUnlockThreadList()
552 cc = dvmTryLockMutex(&gDvm._threadSuspendLock); in lockThreadSuspend()
605 dvmUnlockMutex(&gDvm._threadSuspendLock); in unlockThreadSuspend()
641 target = gDvm.threadList; in dvmSlayDaemons()
649 gDvm.offJavaLangThread_daemon)) in dvmSlayDaemons()
700 target = gDvm.threadList; in dvmSlayDaemons()
737 target = gDvm.threadList; in dvmSlayDaemons()
759 self = gDvm.threadList; in dvmPrepMainForJni()
792 thread = gDvm.threadList; in dvmPrepMainThread()
799 if (!dvmInitClass(gDvm.classJavaLangClass)) { in dvmPrepMainThread()
803 if (!dvmInitClass(gDvm.classJavaLangThreadGroup) || in dvmPrepMainThread()
804 !dvmInitClass(gDvm.classJavaLangThread) || in dvmPrepMainThread()
805 !dvmInitClass(gDvm.classJavaLangVMThread)) in dvmPrepMainThread()
819 threadObj = dvmAllocObject(gDvm.classJavaLangThread, ALLOC_DEFAULT); in dvmPrepMainThread()
831 init = dvmFindDirectMethodByDescriptor(gDvm.classJavaLangThread, "<init>", in dvmPrepMainThread()
844 vmThreadObj = dvmAllocObject(gDvm.classJavaLangVMThread, ALLOC_DEFAULT); in dvmPrepMainThread()
851 init = dvmFindDirectMethodByDescriptor(gDvm.classJavaLangVMThread, "<init>", in dvmPrepMainThread()
860 assert(gDvm.offJavaLangVMThread_vmData != 0); in dvmPrepMainThread()
861 dvmSetFieldInt(vmThreadObj, gDvm.offJavaLangVMThread_vmData, (u4)thread); in dvmPrepMainThread()
868 dvmSetFieldObject(threadObj, gDvm.offJavaLangThread_vmThread, in dvmPrepMainThread()
883 int ctxtClassLoaderOffset = dvmFindFieldOffset(gDvm.classJavaLangThread, in dvmPrepMainThread()
896 gDvm.nonDaemonThreadCount++; in dvmPrepMainThread()
1055 if (thread == gDvm.threadList) { in unlinkThread()
1057 gDvm.threadList = thread->next; in unlinkThread()
1111 return (Thread*) pthread_getspecific(gDvm.pthreadKeySelf); in dvmThreadSelf()
1121 cc = pthread_setspecific(gDvm.pthreadKeySelf, thread); in setThreadSelf()
1179 int cc = pthread_setspecific(gDvm.pthreadKeySelf, self); in threadExitCheck()
1208 int num = dvmAllocBit(gDvm.threadIdMap); in assignThreadId()
1226 dvmClearBit(gDvm.threadIdMap, thread->threadId - 1); in releaseThreadId()
1243 if (gDvm.methFakeNativeEntry == NULL) { in createFakeEntryFrame()
1278 gDvm.methFakeNativeEntry = mainMeth; in createFakeEntryFrame()
1281 if (!dvmPushJNIFrame(thread, gDvm.methFakeNativeEntry)) in createFakeEntryFrame()
1287 assert(gDvm.methFakeNativeEntry->registersSize == 1); in createFakeEntryFrame()
1404 if(gDvm.zygote) { in dvmCreateInterpThread()
1407 gDvm.offJavaLangThread_name); in dvmCreateInterpThread()
1421 stackSize = gDvm.stackSize; in dvmCreateInterpThread()
1436 vmThreadObj = dvmAllocObject(gDvm.classJavaLangVMThread, ALLOC_DEFAULT); in dvmCreateInterpThread()
1456 if (dvmGetFieldObject(threadObj, gDvm.offJavaLangThread_vmThread) != NULL) { in dvmCreateInterpThread()
1471 dvmSetFieldInt(vmThreadObj, gDvm.offJavaLangVMThread_vmData, (u4)newThread); in dvmCreateInterpThread()
1472 dvmSetFieldObject(threadObj, gDvm.offJavaLangThread_vmThread, vmThreadObj); in dvmCreateInterpThread()
1492 dvmSetFieldObject(threadObj, gDvm.offJavaLangThread_vmThread, NULL); in dvmCreateInterpThread()
1582 pthread_cond_wait(&gDvm.threadStartCond, &gDvm.threadListLock); in dvmCreateInterpThread()
1585 newThread->next = gDvm.threadList->next; in dvmCreateInterpThread()
1588 newThread->prev = gDvm.threadList; in dvmCreateInterpThread()
1589 gDvm.threadList->next = newThread; in dvmCreateInterpThread()
1591 if (!dvmGetFieldBoolean(threadObj, gDvm.offJavaLangThread_daemon)) in dvmCreateInterpThread()
1592 gDvm.nonDaemonThreadCount++; // guarded by thread list lock in dvmCreateInterpThread()
1614 pthread_cond_broadcast(&gDvm.threadStartCond); in dvmCreateInterpThread()
1651 pthread_cond_broadcast(&gDvm.threadStartCond); in interpThreadStart()
1667 pthread_cond_wait(&gDvm.threadStartCond, &gDvm.threadListLock); in interpThreadStart()
1686 if (gDvm.debuggerConnected) in interpThreadStart()
1698 gDvm.offJavaLangThread_priority); in interpThreadStart()
1707 Method* run = self->threadObj->clazz->vtable[gDvm.voffJavaLangThread_run]; in interpThreadStart()
1757 threadHandler = dvmFindInstanceField(gDvm.classJavaLangThread, in threadExitUncaughtException()
1859 pthread_cond_wait(&gDvm.threadStartCond, &gDvm.threadListLock); in dvmCreateInternalThread()
1908 pthread_cond_broadcast(&gDvm.threadStartCond); in internalThreadStart()
1928 pthread_cond_broadcast(&gDvm.threadStartCond); in internalThreadStart()
1954 self = allocThread(gDvm.stackSize); in dvmAttachCurrentThread()
1991 self->next = gDvm.threadList->next; in dvmAttachCurrentThread()
1994 self->prev = gDvm.threadList; in dvmAttachCurrentThread()
1995 gDvm.threadList->next = self; in dvmAttachCurrentThread()
1997 gDvm.nonDaemonThreadCount++; in dvmAttachCurrentThread()
2017 dvmLockMutex(&gDvm.gcHeapLock); in dvmAttachCurrentThread()
2018 dvmUnlockMutex(&gDvm.gcHeapLock); in dvmAttachCurrentThread()
2024 threadObj = dvmAllocObject(gDvm.classJavaLangThread, ALLOC_DEFAULT); in dvmAttachCurrentThread()
2025 vmThreadObj = dvmAllocObject(gDvm.classJavaLangVMThread, ALLOC_DEFAULT); in dvmAttachCurrentThread()
2034 dvmSetFieldInt(vmThreadObj, gDvm.offJavaLangVMThread_vmData, (u4)self); in dvmAttachCurrentThread()
2047 init = dvmFindDirectMethodByDescriptor(gDvm.classJavaLangThread, "<init>", in dvmAttachCurrentThread()
2087 if (dvmGetFieldObject(threadObj, gDvm.offJavaLangThread_vmThread) != NULL) { in dvmAttachCurrentThread()
2107 dvmSetFieldObject(threadObj, gDvm.offJavaLangThread_vmThread, vmThreadObj); in dvmAttachCurrentThread()
2118 if (gDvm.debuggerConnected) in dvmAttachCurrentThread()
2127 gDvm.nonDaemonThreadCount--; in dvmAttachCurrentThread()
2202 group = dvmGetFieldObject(self->threadObj, gDvm.offJavaLangThread_group); in dvmDetachCurrentThread()
2223 group->clazz->vtable[gDvm.voffJavaLangThreadGroup_removeThread]; in dvmDetachCurrentThread()
2235 gDvm.offJavaLangThread_vmThread); in dvmDetachCurrentThread()
2237 dvmSetFieldObject(self->threadObj, gDvm.offJavaLangThread_vmThread, NULL); in dvmDetachCurrentThread()
2240 dvmSetFieldObject(vmThread, gDvm.offJavaLangVMThread_vmData, NULL); in dvmDetachCurrentThread()
2250 if (gDvm.debuggerConnected) in dvmDetachCurrentThread()
2283 MethodTraceState* traceState = &gDvm.methodTrace; in dvmDetachCurrentThread()
2315 if (!dvmGetFieldBoolean(self->threadObj, gDvm.offJavaLangThread_daemon)) { in dvmDetachCurrentThread()
2316 gDvm.nonDaemonThreadCount--; // guarded by thread list lock in dvmDetachCurrentThread()
2318 if (gDvm.nonDaemonThreadCount == 0) { in dvmDetachCurrentThread()
2324 cc = pthread_cond_signal(&gDvm.vmExitCond); in dvmDetachCurrentThread()
2397 dvmBroadcastCond(&gDvm.threadSuspendCountCond); in dvmResumeThread()
2411 assert(gDvm.jdwpState != NULL); in dvmSuspendSelf()
2412 if (self->handle == dvmJdwpGetDebugThread(gDvm.jdwpState)) { in dvmSuspendSelf()
2443 dvmJdwpClearWaitForEventThread(gDvm.jdwpState); in dvmSuspendSelf()
2447 dvmWaitCond(&gDvm.threadSuspendCountCond, in dvmSuspendSelf()
2448 &gDvm.threadSuspendCountLock); in dvmSuspendSelf()
2774 for (thread = gDvm.threadList; thread != NULL; thread = thread->next) { in dvmSuspendAllThreads()
2780 thread->handle == dvmJdwpGetDebugThread(gDvm.jdwpState)) in dvmSuspendAllThreads()
2803 for (thread = gDvm.threadList; thread != NULL; thread = thread->next) { in dvmSuspendAllThreads()
2809 thread->handle == dvmJdwpGetDebugThread(gDvm.jdwpState)) in dvmSuspendAllThreads()
2848 for (thread = gDvm.threadList; thread != NULL; thread = thread->next) { in dvmResumeAllThreads()
2854 thread->handle == dvmJdwpGetDebugThread(gDvm.jdwpState)) in dvmResumeAllThreads()
2913 cc = pthread_cond_broadcast(&gDvm.threadSuspendCountCond); in dvmResumeAllThreads()
2940 for (thread = gDvm.threadList; thread != NULL; thread = thread->next) { in dvmUndoDebuggerSuspensions()
2945 if (thread->handle == dvmJdwpGetDebugThread(gDvm.jdwpState)) { in dvmUndoDebuggerSuspensions()
2963 cc = pthread_cond_broadcast(&gDvm.threadSuspendCountCond); in dvmUndoDebuggerSuspensions()
3023 assert(thread->handle != dvmJdwpGetDebugThread(gDvm.jdwpState)); in dvmWaitForSuspend()
3062 dvmWaitCond(&gDvm.threadSuspendCountCond, in fullSuspendCheck()
3063 &gDvm.threadSuspendCountLock); in fullSuspendCheck()
3189 groupField = dvmFindStaticField(gDvm.classJavaLangThreadGroup, in getStaticThreadGroup()
3225 vmData = dvmGetFieldInt(vmThreadObj, gDvm.offJavaLangVMThread_vmData); in dvmGetThreadFromThreadObject()
3228 Thread* thread = gDvm.threadList; in dvmGetThreadFromThreadObject()
3255 for (thread = gDvm.threadList; thread != NULL; thread = thread->next) { in dvmGetThreadByHandle()
3271 for (thread = gDvm.threadList; thread != NULL; thread = thread->next) { in dvmGetThreadByThreadId()
3371 if (thread == gDvm.threadList) { in dvmIsOnThreadList()
3532 gDvm.offJavaLangThread_name); in dvmDumpThreadEx()
3535 priority = dvmGetFieldInt(threadObj, gDvm.offJavaLangThread_priority); in dvmDumpThreadEx()
3536 isDaemon = dvmGetFieldBoolean(threadObj, gDvm.offJavaLangThread_daemon); in dvmDumpThreadEx()
3551 gDvm.offJavaLangThread_group); in dvmDumpThreadEx()
3553 int offset = dvmFindFieldOffset(gDvm.classJavaLangThreadGroup, in dvmDumpThreadEx()
3606 if (obj->clazz == gDvm.classJavaLangClass) { in dvmDumpThreadEx()
3648 dvmGetFieldObject(thread->threadObj, gDvm.offJavaLangThread_name); in dvmGetThreadName()
3680 gDvm.threadListLock.value, in dvmDumpAllThreadsEx()
3681 gDvm._threadSuspendLock.value, in dvmDumpAllThreadsEx()
3682 gDvm.threadSuspendCountLock.value, in dvmDumpAllThreadsEx()
3683 gDvm.gcHeapLock.value, in dvmDumpAllThreadsEx()
3684 gDvm.heapWorkerLock.value, in dvmDumpAllThreadsEx()
3685 gDvm.heapWorkerListLock.value); in dvmDumpAllThreadsEx()
3691 thread = gDvm.threadList; in dvmDumpAllThreadsEx()
3724 gDvm.nativeDebuggerActive = true; in dvmNukeThread()
3914 if (dvmPointerSetAddEntry(gDvm.preciseMethods, method)) in gcScanInterpStackReferences()
4010 if (gDvm.preciseGc) { in gcScanInterpStackReferences()
4195 for (thread = gDvm.threadList; thread != NULL; in gcScanAllThreads()