Здравствуйте, Аноним, Вы писали:
А>Понятно,но не до конца. Под записью что понимать? Я использую:
А>А>deque_pBuffers.push_back(pBuffer);
А>deque_pBuffers.push_front(pBuffer);
А>deque_pBuffers.pop_back()
А>
Вместо "запись" лучше использовать "модификация". Все 3 перечисленные выше операции — суть модификации дэка.
А>Только эти операции нужно синхронизировать?
А>Или получение элемента по итератору:
А>А>deque<sBuffer*>::iterator i;
А>i = deque_pBuffers.begin();
А>pBuffer = *i;
А>
А>Тоже нуждается в синхронизации?
Если хотя бы 1 поток может модифицировать дэк, то вся работа с ним (с дэком) должна быть синхронизирована. Похоже, что у тебя как раз такая ситуация.
Да, и в этом случае итераторы тоже хранить нельзя, т.к. при модификациях дэка они инвалидируются.