У меня есть немного кода с условием состязания ... Я знаю, что это условие состязания, потому что оно не происходит последовательно, и, кажется, это происходит чаще на двухъядерных машинах.
Это никогда не происходит, когда я отслеживаю.Хотя есть вероятность, что это тоже может быть тупик.Анализируя этапы завершения журналов, где это происходит и не происходит, я смог точно определить эту ошибку в одной функции.Однако я не знаю, где в рамках функции это происходит.Это не на верхнем уровне.
Добавление операторов журнала или точек останова изменит время, если это условие гонки, и предотвратит это.
Есть ли какая-либо техника, которую я могу использовать, кроме получения анализатора состояния гонки, который позволит мне точно определить, где это происходит?
Это в Visual Studio 9 с C ++ (изнеуправляемый сорт).