Order violations occur assuming mThread is initially set to NULL; it is assumed that the following is true:
Thread 1::
void init() {
...
mThread = PR_CreateThread(mMain, ...);
...
}
Thread 2::
void mMain(...) {
...
mState = mThread->State;
...
}