Re[3]: STL-вский vector и снихронизация потоков
От: rus blood Россия  
Дата: 04.08.05 12:12
Оценка:
Здравствуйте, RealBobEx, Вы писали:


RBE>Хммм... В таком случае должно помогать простое обновление значений итераторов, например так:

RBE>
RBE>    singleLock.Lock();
RBE>    I = m_Vector.begin();
RBE>    End = m_Vector.end();
RBE>    singleLock.Unlock();

RBE>    long i = 0;
RBE>    for(I; I < End; )
RBE>    {
RBE>        singleLock.Lock();
RBE>        //Используем I, т.к. теперь он валидный. <- да не фига он не валидный. Про него речь-то !!!
RBE>        i++;
RBE>        I++;
RBE>        End = m_Vector.end();
RBE>        singleLock.Unlock();
RBE>    }    
RBE>


Итератор I остается старым -> инвалидируется...
Имею скафандр — готов путешествовать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.