src/hotspot/os/windows/threadCritical_windows.cpp
changeset 59252 623722a6aeb9
parent 47765 b7c7428eaab9
equal deleted inserted replaced
59251:4cbfa5077d68 59252:623722a6aeb9
    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     }