C ++ - вектор thread_local вызывает сбой при объединении () в MinGW - PullRequest
0 голосов
/ 24 апреля 2018
#include <thread>
#include <vector>
using namespace std;

thread_local vector<int> v;

void foo(int n) 
{  
    for(int i=0 ; i<n ; i++)
        v.push_back(i);
}

int main() 
{
    vector<thread> thread_array;
    for(int i=0 ; i<4 ; i++)
        thread_array.push_back(thread(foo,100));
    for(int i=0 ; i<4 ; i++)
        thread_array.at(i).join();
    return 0;
}

Эта программа вылетает для меня после достижения второго цикла for (присоединяющегося), но не всегда. Иногда выходит просто нормально, иногда вылетает.

Что может быть причиной этого?

...