2015/0513 멀티쓰레드 서버 버그잡기 멀티 쓰레드 버그잡기 1. LockOrderCheckervoid LockOrderChecker::Pop(FastSpinlock* lock) { /// 최소한 락이 잡혀 있는 상태여야 할 것이고 CRASH_ASSERT(mStackTopPos > 0); /// 당연히 최근에 push했던 녀석이랑 같아야겠지.. CRASH_ASSERT(mLockStack[mStackTopPos - 1] == lock); mLockStack[--mStackTopPos] = nullptr; } 버그 메시지는 여기서부터 시작한다. Lock Stack의 top과 pop할 대상 lock이 다르다! 이 스택은 LockOrderChecker에서 LockHierachy 유지를 위해서 사용하던 스택이다. 스택하면 생각나는 버그는 ABA이다. .. 2015. 5. 4. 이전 1 2 3 4 다음