Re: boost::call_once баг ?
От: ioni Россия  
Дата: 01.09.09 17:58
Оценка:
Здравствуйте, Feonyf, Вы писали:

F>Смотрю на код в бусте внутри call_once


F>void* const mutex_handle(::boost::detail::create_once_mutex(&flag));

F>BOOST_ASSERT(mutex_handle);

F>только ассерт ? А что будет если ::boost::detail::create_once_mutex возвратит ошибку, например в результате нехватки ресурсов ?


ничего,
если вы уж полезли в дебри boost, то могли бы посмотреть, что функция
::boost::detail::create_once_mutex(&flag)

возвращает void* ( что скорее всего HANDLE объекта ), посему ассерт вполне по месту для отладочной версии
в релизе будет неудачное создание объекта и скорее всего INVALID_HANDLE_VALUE
что вполне допустимо для winapi
и потом как реагировать когда ресурсов нет... прикрвать приолжение... кидать исключение...
это уже вопрос дискусии
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.