equal
deleted
inserted
replaced
54 ThreadCritical::ThreadCritical() { |
54 ThreadCritical::ThreadCritical() { |
55 DWORD current_thread = GetCurrentThreadId(); |
55 DWORD current_thread = GetCurrentThreadId(); |
56 |
56 |
57 if (lock_owner != current_thread) { |
57 if (lock_owner != current_thread) { |
58 // Grab the lock before doing anything. |
58 // Grab the lock before doing anything. |
59 while (Atomic::cmpxchg(0, &lock_count, -1) != -1) { |
59 while (Atomic::cmpxchg(&lock_count, -1, 0) != -1) { |
60 if (initialized) { |
60 if (initialized) { |
61 DWORD ret = WaitForSingleObject(lock_event, INFINITE); |
61 DWORD ret = WaitForSingleObject(lock_event, INFINITE); |
62 assert(ret == WAIT_OBJECT_0, "unexpected return value from WaitForSingleObject"); |
62 assert(ret == WAIT_OBJECT_0, "unexpected return value from WaitForSingleObject"); |
63 } |
63 } |
64 } |
64 } |