Я искал Google столько, сколько мог, но я не мог найти хороших ответов на этот вопрос.
localtime_r должен быть потокобезопасной функцией для получения системного времени. Однако при проверке моего приложения с помощью Valgrind --tool=drd оно постоянно говорит мне, что для этой функции существует состояние гонки данных. Общие результаты поиска лгут мне или я просто что-то упускаю? Кажется неэффективным окружать каждый вызов localtime_r мьютексом, особенно если он в первую очередь должен быть потокобезопасным. вот как я его использую:
timeval handlerTime;
gettimeofday(&handlerTime,NULL);
tm handlerTm;
localtime_r(&handlerTime.tv_sec,&handlerTm);
Любые идеи?