Silence TSAN, lock before checking `ares_event_thread::isup` (#915)

TSAN is warning about a thread concurrency issue that doesn't actually matter if the operation isn't atomic as its an optimization in this code path to skip timeout processing if we're shutting down due to ares_destroy().

Fix By: Jiwoo Park (@jimmy-park)
v1.34
Jiwoo Park 3 weeks ago committed by Brad House
parent 07827dcabe
commit f89f3cabe4
  1. 8
      src/lib/event/ares_event_thread.c

@ -354,14 +354,16 @@ static void *ares_event_thread(void *arg)
ares_process_pending_write(e->channel);
}
/* Relock before we loop again */
ares_thread_mutex_lock(e->mutex);
/* Each iteration should do timeout processing and any other cleanup
* that may not have been performed */
if (e->isup) {
ares_thread_mutex_unlock(e->mutex);
ares_process_fds(e->channel, NULL, 0, ARES_PROCESS_FLAG_NONE);
ares_thread_mutex_lock(e->mutex);
}
/* Relock before we loop again */
ares_thread_mutex_lock(e->mutex);
}
/* Lets cleanup while we're in the thread itself */

Loading…
Cancel
Save