Use raw_assert in mutex functions to avoid circularity in logs.

This commit is contained in:
Nick Mathewson 2018-06-20 14:15:00 -04:00
parent bb15dc1ebd
commit 17ba51a30a
2 changed files with 9 additions and 16 deletions

View File

@ -106,8 +106,7 @@ tor_mutex_init(tor_mutex_t *mutex)
const int err = pthread_mutex_init(&mutex->mutex, &attr_recursive); const int err = pthread_mutex_init(&mutex->mutex, &attr_recursive);
if (PREDICT_UNLIKELY(err)) { if (PREDICT_UNLIKELY(err)) {
// LCOV_EXCL_START // LCOV_EXCL_START
log_err(LD_GENERAL, "Error %d creating a mutex.", err); raw_assert_unreached_msg("Error creating a mutex.");
tor_assert_unreached();
// LCOV_EXCL_STOP // LCOV_EXCL_STOP
} }
} }
@ -123,8 +122,7 @@ tor_mutex_init_nonrecursive(tor_mutex_t *mutex)
err = pthread_mutex_init(&mutex->mutex, NULL); err = pthread_mutex_init(&mutex->mutex, NULL);
if (PREDICT_UNLIKELY(err)) { if (PREDICT_UNLIKELY(err)) {
// LCOV_EXCL_START // LCOV_EXCL_START
log_err(LD_GENERAL, "Error %d creating a mutex.", err); raw_assert_unreached_msg("Error creating a mutex.");
tor_assert_unreached();
// LCOV_EXCL_STOP // LCOV_EXCL_STOP
} }
} }
@ -134,12 +132,11 @@ void
tor_mutex_acquire(tor_mutex_t *m) tor_mutex_acquire(tor_mutex_t *m)
{ {
int err; int err;
tor_assert(m); raw_assert(m);
err = pthread_mutex_lock(&m->mutex); err = pthread_mutex_lock(&m->mutex);
if (PREDICT_UNLIKELY(err)) { if (PREDICT_UNLIKELY(err)) {
// LCOV_EXCL_START // LCOV_EXCL_START
log_err(LD_GENERAL, "Error %d locking a mutex.", err); raw_assert_unreached_msg("Error locking a mutex.");
tor_assert_unreached();
// LCOV_EXCL_STOP // LCOV_EXCL_STOP
} }
} }
@ -148,12 +145,11 @@ void
tor_mutex_release(tor_mutex_t *m) tor_mutex_release(tor_mutex_t *m)
{ {
int err; int err;
tor_assert(m); raw_assert(m);
err = pthread_mutex_unlock(&m->mutex); err = pthread_mutex_unlock(&m->mutex);
if (PREDICT_UNLIKELY(err)) { if (PREDICT_UNLIKELY(err)) {
// LCOV_EXCL_START // LCOV_EXCL_START
log_err(LD_GENERAL, "Error %d unlocking a mutex.", err); raw_assert_unreached_msg("Error unlocking a mutex.");
tor_assert_unreached();
// LCOV_EXCL_STOP // LCOV_EXCL_STOP
} }
} }
@ -164,12 +160,11 @@ void
tor_mutex_uninit(tor_mutex_t *m) tor_mutex_uninit(tor_mutex_t *m)
{ {
int err; int err;
tor_assert(m); raw_assert(m);
err = pthread_mutex_destroy(&m->mutex); err = pthread_mutex_destroy(&m->mutex);
if (PREDICT_UNLIKELY(err)) { if (PREDICT_UNLIKELY(err)) {
// LCOV_EXCL_START // LCOV_EXCL_START
log_err(LD_GENERAL, "Error %d destroying a mutex.", err); raw_assert_unreached_msg("Error destroying a mutex.");
tor_assert_unreached();
// LCOV_EXCL_STOP // LCOV_EXCL_STOP
} }
} }
@ -347,4 +342,3 @@ tor_threads_init(void)
set_main_thread(); set_main_thread();
} }
} }

View File

@ -74,7 +74,7 @@ tor_mutex_uninit(tor_mutex_t *m)
void void
tor_mutex_acquire(tor_mutex_t *m) tor_mutex_acquire(tor_mutex_t *m)
{ {
tor_assert(m); raw_assert(m);
EnterCriticalSection(&m->mutex); EnterCriticalSection(&m->mutex);
} }
void void
@ -248,4 +248,3 @@ tor_threads_init(void)
} }
#endif /* defined(_WIN32) */ #endif /* defined(_WIN32) */