Re[3]: нужен контейнер, потокобезопасный, с неинвалидирующимися
От: landerhigh Пират  
Дата: 08.08.18 12:58
Оценка:
Здравствуйте, ksd, Вы писали:

L>>Код выше нельзя в общем случае сделать потокобезопасным средствами контейнера.

ksd>это еще почему?! итератор может же в операторе ++ поинтересоваться, обновился контейнер или нет?

Может. Ну, допустим, обновился (если раньше не упадет, см. ниже). Дальше что?

Далее:

some_type do_something_with(const some_other_type& what)
{
    //....
}

for (auto i = container.begin(); i != container.end(); ++i)
{
    auto some_value = do_something_with(*i);      // А в этот прекрасный момент другой поток делает контейнеру clear()
}



Иными словами, попытка изобрести универсальный потокобезопасный контейнер ни к чему хорошему не приводит.
www.blinnov.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.