История изменений
Исправление
kvpfs,
(текущая версия)
:
Санитайзер жалуется на double lock следующим образом (стек вызовов):
WARNING: ThreadSanitizer: double lock of a mutex (pid=74462)
...
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) <null> (a.out+0x4a32)
#5 Test::check() <null> (a.out+0x2628)
#6 check_th() <null> (a.out+0x27d7)
...
...
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) <null> (a.out+0x4a32)
#5 Test::read() <null> (a.out+0x24d0)
#6 read_th() <null> (a.out+0x277a)
...
очевидно, что check_th() и read_th() выполняются в разных потоках, откуда там может быть double lock?
Исходная версия
kvpfs,
:
Санитайзер жалуется на double lock следующим образом (стек вызовов):
...
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) <null> (a.out+0x4a32)
#5 Test::check() <null> (a.out+0x2628)
#6 check_th() <null> (a.out+0x27d7)
...
...
#4 std::unique_lock<std::mutex>::unique_lock(std::mutex&) <null> (a.out+0x4a32)
#5 Test::read() <null> (a.out+0x24d0)
#6 read_th() <null> (a.out+0x277a)
...
очевидно, что check_th() и read_th() выполняются в разных потоках, откуда там может быть double lock?