Ошибка сегментации в многопоточном приложении
У меня ошибка сегментации в моем многопоточном приложении, которая становится головной болью. Похоже, что проблема генерируется во время вызова usleep. Я пытался заменить его на наноспящий, но он сохраняется. Это также появляется рядом с вызовом sem_timedwait.
Я компилирую с опциями gcc и -lpthread.
Может ли это быть причиной ошибки сегментации? Что может быть причиной?
1 ответ
Ошибка сегментации означает, что вы обращаетесь к памяти, на которую у вас нет прав. Обычно это происходит из-за ошибки границ массива или устаревшего указателя, например, доступ после освобождения. Вызов режима сна вряд ли будет связан с этим, если только вы не используете режим сна в качестве инструмента синхронизации! Вы можете использовать valgrind, чтобы отследить вашу ошибку.