]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Handle pthread_*_init() failures consistently
authorMichał Kępień <michal@isc.org>
Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)
committerMichał Kępień <michal@isc.org>
Wed, 13 Jul 2022 11:19:32 +0000 (13:19 +0200)
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.

lib/isc/rwlock.c

index 2691a44de440f27b07c9b908cc7b6b4395a020fd..e9b7968efef0ae171bf3c60761dbc0f67df943f2 100644 (file)
 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);
 }