Почему детектор ошибок потоков Helgrind на основе Valgrind сообщает о гонках данных, а детектор гонок данных на основе VC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему детектор ошибок потоков Helgrind на основе Valgrind сообщает о гонках данных, а детектор гонок данных на основе V

Сообщение Anonymous »

1.Background
Следующий код C++ с сайта cppreference.com иллюстрирует, как std::condition_variable используется в сочетании с std::mutex для облегчить взаимодействие между потоками.

Код: Выделить всё

#include                                             //01
#include                                                       //02
#include                                                          //03
#include                                                         //04
#include                                                         //05
//06
std::mutex m;                                                            //07
std::condition_variable cv;                                              //08
std::string data;                                                        //09
bool ready = false;                                                      //10
bool processed = false;                                                  //11
//12
void worker_thread() {                                                   //13
// wait until main() sends data                                        //14
std::unique_lock lk(m);                                    //15
cv.wait(lk, [] { return ready; });                                     //16
//17
// after the wait, we own the lock                                     //18
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78190875/why-does-valgrind-based-helgrind-thread-error-detector-reports-data-races-that-v[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»