pthread на MinGW 32 с затмением 64 бит

У меня есть MinGW32 и я строю небольшой фрагмент кода, используя pthread на eclipse. Код успешно компилируется и связывается, но завершается при его запуске с ненулевым значением выхода. Там нет никаких предупреждений об этом. Однако, при отладке, он работает нормально. Просьба совета.

#include <iostream>
#include <pthread.h>

using namespace std;

pthread_mutex_t counter_mutex = PTHREAD_MUTEX_INITIALIZER;

void* increment(void* counter)
{

cout << "increment" << endl;
int* pcounter = (int*)counter;
for(int i =0; i < 30000; ++i)
{
cout << "Inside for loop" << endl;

pthread_mutex_lock(&counter_mutex);
++(*pcounter);
pthread_mutex_unlock(&counter_mutex);
}
}

int main()

{

pthread_t arr[5];

int counter =0;
for(int i=0; i < 5; ++i)
{
cout << "Creating thread: " << i << endl;
int rc = pthread_create(&arr[i], NULL, increment, (void*)&counter);
if(rc != 0)
{
cout << "Error creating thread: " << rc << endl;
exit(0);
}
}

for(int i=0; i < 5 ; ++i)
{
pthread_join(arr[i], NULL);
}

cout << "result: " << counter << endl;

return 0;
}

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]