If i change order dvmLockMutex <-> dvmChangeStatus,
The dead lock would be clear. Is there any gool solution??
HeapWorkerThread would be suspend or running state after
dvmChangeStatus,
so, there is no reason acquire mutex before dvmChangeStatus.
199 static void lockMutex(pthread_mutex_t *mu)
200 {
201 Thread *self;
202 ThreadStatus oldStatus;
203
204 assert(mu != NULL);
205 if (dvmTryLockMutex(mu) != 0) {
206 self = dvmThreadSelf();
207 assert(self != NULL);
208 oldStatus = dvmChangeStatus(self, THREAD_VMWAIT);
209 dvmLockMutex(mu);
210 dvmChangeStatus(self, oldStatus);
211 }
212 }