equal
deleted
inserted
replaced
585 } |
585 } |
586 |
586 |
587 |
587 |
588 void DCoarseMemory::DPageTables::AsyncClose() |
588 void DCoarseMemory::DPageTables::AsyncClose() |
589 { |
589 { |
590 __NK_ASSERT_DEBUG(CheckAsyncCloseIsSafe()); |
590 __ASSERT_CRITICAL |
|
591 #ifdef _DEBUG |
|
592 NFastMutex* fm = NKern::HeldFastMutex(); |
|
593 if(fm) |
|
594 { |
|
595 Kern::Printf("DCoarseMemory::DPageTables::[0x%08x]::AsyncClose() fast mutex violation %M",this,fm); |
|
596 __NK_ASSERT_DEBUG(0); |
|
597 } |
|
598 #endif |
|
599 |
591 MmuLock::Lock(); |
600 MmuLock::Lock(); |
592 if (__e32_atomic_tas_ord32(&iReferenceCount, 1, -1, 0) != 1) |
601 if (__e32_atomic_tas_ord32(&iReferenceCount, 1, -1, 0) != 1) |
593 { |
602 { |
594 MmuLock::Unlock(); |
603 MmuLock::Unlock(); |
595 return; |
604 return; |