mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 06:55:30 +00:00
isc_mutex_init and isc_condition_init failures are now fatal
This commit is contained in:
@@ -23,8 +23,8 @@
|
|||||||
typedef pthread_cond_t isc_condition_t;
|
typedef pthread_cond_t isc_condition_t;
|
||||||
|
|
||||||
#define isc_condition_init(cp) \
|
#define isc_condition_init(cp) \
|
||||||
((pthread_cond_init((cp), NULL) == 0) ? \
|
(RUNTIME_CHECK(pthread_cond_init((cp), NULL) == 0), \
|
||||||
ISC_R_SUCCESS : ISC_R_UNEXPECTED)
|
ISC_R_SUCCESS)
|
||||||
|
|
||||||
#if ISC_MUTEX_PROFILE
|
#if ISC_MUTEX_PROFILE
|
||||||
#define isc_condition_wait(cp, mp) \
|
#define isc_condition_wait(cp, mp) \
|
||||||
|
@@ -88,10 +88,10 @@ isc_mutex_init_profile(isc_mutex_t *mp, const char *file, int line) {
|
|||||||
int i, err;
|
int i, err;
|
||||||
|
|
||||||
err = pthread_mutex_init(&mp->mutex, NULL);
|
err = pthread_mutex_init(&mp->mutex, NULL);
|
||||||
if (err == ENOMEM)
|
if (err != 0) {
|
||||||
return (ISC_R_NOMEMORY);
|
strerror_r(err, strbuf, sizeof(strbuf));
|
||||||
if (err != 0)
|
isc_error_fatal(file, line, "pthread_mutex_init failed: %s", strbuf);
|
||||||
return (ISC_R_UNEXPECTED);
|
}
|
||||||
|
|
||||||
RUNTIME_CHECK(pthread_mutex_lock(&statslock) == 0);
|
RUNTIME_CHECK(pthread_mutex_lock(&statslock) == 0);
|
||||||
|
|
||||||
@@ -294,9 +294,7 @@ isc__mutex_init(isc_mutex_t *mp, const char *file, unsigned int line) {
|
|||||||
return (ISC_R_NOMEMORY);
|
return (ISC_R_NOMEMORY);
|
||||||
if (err != 0) {
|
if (err != 0) {
|
||||||
strerror_r(err, strbuf, sizeof(strbuf));
|
strerror_r(err, strbuf, sizeof(strbuf));
|
||||||
UNEXPECTED_ERROR(file, line, "isc_mutex_init() failed: %s",
|
isc_error_fatal(file, line, "pthread_mutex_init failed: %s", strbuf);
|
||||||
strbuf);
|
|
||||||
result = ISC_R_UNEXPECTED;
|
|
||||||
}
|
}
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user