| 470 | #endif |
| 471 | |
| 472 | extern "C" void fastlock_free(struct fastlock *lock) |
| 473 | { |
| 474 | // NOP |
| 475 | serverAssert((lock->m_ticket.m_active == lock->m_ticket.m_avail) // Assert the lock is unlocked |
| 476 | || (lock->m_pidOwner == gettid() |
| 477 | && (lock->m_ticket.m_active == static_cast<uint16_t>(lock->m_ticket.m_avail-1U)))); // OR we own the lock and nobody else is waiting |
| 478 | lock->m_pidOwner = -2; // sentinal value indicating free |
| 479 | ANNOTATE_RWLOCK_DESTROY(lock); |
| 480 | } |
| 481 | |
| 482 | |
| 483 | bool fastlock::fOwnLock() |
no test coverage detected