C ++ Многопользовательский стек переполненC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C ++ Многопользовательский стек переполнен

Сообщение Anonymous »

Я пытаюсь изолировать проблему с многопоточной чтением в моем приложении C ++. < /p>

обработчик ниже создается и «обрабатывается» в вспомогательном потоке. < /p>

struct Handler
{
void process(const std::vector ops)
{
std::vector::const_iterator iter = ops.cbegin();
while( iter != ops.cend() ) {
processOperation( op );
}
}

void processOperation(std::vector::const_iterator& iter)
{
size_t op = *iter;
iter++;

switch( op ) {
case frame_push : {
processOperation( iter );
break;
}
case frame_pop : {
return;
}
default : { break; }
}
}
};
< /code>

Как вы можете видеть в вышеперечисленном, процессоперпоокуса () вызывает себя, если текущий «OP» будет равен frame_push. Однако, когда я запускаю этого обработчика в вспомогательном потоке вместо основного потока, это происходит гораздо быстрее. < /p>

Кажется, что возможность переполнения стека вызовов не является моей единственной проблемой здесь. Может ли быть и проблема повторной деятельности? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/309 ... k-overflow
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»