From: Michał Kępień Date: Wed, 13 Jul 2022 11:19:32 +0000 (+0200) Subject: Handle pthread_*_init() failures consistently X-Git-Tag: v9.19.4~33^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5759ace07f70ed32a40d733bacd35e062c28bd3c;p=thirdparty%2Fbind9.git Handle pthread_*_init() failures consistently isc_rwlock_init() currently detects pthread_rwlock_init() failures using a REQUIRE() assertion. Use the ERRNO_CHECK() macro for that purpose instead, so that read-write lock initialization failures are handled identically as condition variable (pthread_cond_init()) and mutex (pthread_mutex_init()) initialization failures. --- diff --git a/lib/isc/rwlock.c b/lib/isc/rwlock.c index 2691a44de44..e9b7968efef 100644 --- a/lib/isc/rwlock.c +++ b/lib/isc/rwlock.c @@ -35,9 +35,13 @@ void isc_rwlock_init(isc_rwlock_t *rwl, unsigned int read_quota, unsigned int write_quota) { + int ret; UNUSED(read_quota); UNUSED(write_quota); - REQUIRE(pthread_rwlock_init(&rwl->rwlock, NULL) == 0); + + ret = pthread_rwlock_init(&rwl->rwlock, NULL); + ERRNO_CHECK(pthread_rwlock_init, ret); + atomic_init(&rwl->downgrade, false); }