pthread_t на Mac OS X имеет значение NULL - PullRequest
0 голосов
/ 02 марта 2012

Я использую этот код в AIX / HP-UX / LINUX, но когда я пытаюсь запустить его на Mac OS X, он не работает хорошо:

pthread_t m_thread;
                int merror;//thread return
cout << "init" << endl;
                if (m_thread != NULL){
 cout << "running" << endl;
 merror= pthread_create(&m_thread, NULL, _exec, NULL);//initialize thread
}

В Linux создается pthread, и на экране появляется сообщение о запуске. Но на Mac OS X m_thread возвращает ноль, поэтому o не может выполнить тот же код на MAC OS X, кто-то знает, почему это происходит.

Код компиляции: g ++ -g -o sclient sclient.cpp socket.cpp -pthread -lpthread -thread

Ответы [ 2 ]

3 голосов
/ 02 марта 2012

Вы не должны проверять m_thread != NULL, это не имеет смысла.Уберите этот чек, и он должен работать нормально.

0 голосов
/ 02 марта 2012

Вы не инициализировали m_thread при выполнении теста - его значение не определено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...