boost::thread и потокобезопасность :)
От: Sergey Россия  
Дата: 12.11.07 10:24
Оценка: 119 (11) +1
А знаете ли вы, что в таком коде:
[ccode]
void foo() {}

void bar()
{
boost::thread x(&foo);
}
[ccode]

функция bar не является потокобезопасной, начиная с версии boost 1.34? Поскольку в boost::function (function_template.hpp, lines 652-658) теперь есть вот такой код:

template<typename Functor>
void assign_to(Functor f)
{
static vtable_type stored_vtable(f);
if (stored_vtable.assign_to(f, functor)) vtable = &stored_vtable;
else vtable = 0;
}

Поэтому на современных многоядерных процессорах оно иногда падает.
Posted via RSDN NNTP Server 2.1 beta
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.