Fix unchecked return of isc_rwlock_lock and isc_rwlock_unlock

(cherry picked from commit bcaf23dd27)
This commit is contained in:
Mark Andrews
2021-07-07 15:47:59 +10:00
parent 70a7973135
commit ce5207699d
2 changed files with 8 additions and 5 deletions

View File

@@ -112,9 +112,12 @@ isc_rwlock_tryupgrade(isc_rwlock_t *rwl) {
void
isc_rwlock_downgrade(isc_rwlock_t *rwl) {
isc_result_t result;
atomic_store_release(&rwl->downgrade, true);
isc_rwlock_unlock(rwl, isc_rwlocktype_write);
isc_rwlock_lock(rwl, isc_rwlocktype_read);
result = isc_rwlock_unlock(rwl, isc_rwlocktype_write);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
result = isc_rwlock_lock(rwl, isc_rwlocktype_read);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
atomic_store_release(&rwl->downgrade, false);
}