Re[3]: О lock-free алгоритмах (+бонус)
От: pif_pif  
Дата: 25.04.11 09:51
Оценка:
Насколько я понял код, dequeue_pos_ и enqueue_pos_ двигаются в одну сторону по buffer_ и нигде нет проверки того, что они не совпали (или dequeue_pos_ > enqueue_pos_). Parallel Inspector совершенно прав, что между enquee и dequee существует data race — из обеих функции есть несинхронизированный доступ к buffer_. Следовательно, мы можем вынимать из очереди несуществующие элементы, которые не были поставлены в очередь. Вы уверены, что такая очередь востребована?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.