У меня есть следующий код:C++ 11 многопоточность ошибка памяти
somefunc(string s, semaphore* sem) {
//some functionality
sem->signal();
}
int main() {
int num = 0;
semaphore sem(0);
vector<string> arr;
for (string& s : arr) {
++num;
thread(somefunc, s, &sem).detach();
}
for (int i = 0; i < num; i++)
sem.wait();
}
я получаю SIGSEGV
ошибки внутри std::string
размещения на линии, где thread()
есть. Что-то не так с этим кодом? semaphore
- это пользовательский класс, который использует мьютекс и условную переменную.
Какие ошибки памяти? – user2079303
Извините, я просто добавил деталь – hovo
Напишите [mcve]. – user2079303