Можете ли вы показать нам, как вы делаете свои критические разделы?Поскольку Mutex определенно может решить вашу проблему
Затем, немного предположений, если у вас все еще есть проблемы даже с критическими секциями, это может произойти, потому что вставка и удаление делают недействительными итераторы.
, если вы делаете:
...
{
for ( ; itrSample < listRoundRobinSensor->end(); ++itrSample )
{
MutexLocker m(mutex);
nId =(unsigned int) *itrSample ;
// Do horrible stuff like insertion/deletion
} // m dies at the end of the scope (cf RAII)
}
тогда, это вызывает одновременные ошибки.itrSample
становится недействительным.
Решение будет следующим:
...
{
MutexLocker m(mutex);
for ( ; itrSample < listRoundRobinSensor->end(); ++itrSample )
{
nId =(unsigned int) *itrSample ;
// Do horrible stuff like insertion/deletion
}
} // m dies at the end of the scope (cf RAII)