Можно ли вызывать pthread_exit из main?
Когда я звонюpthread_exit
отmain
программа никогда не завершается. Я ожидал, что программа завершится, поскольку я выходил из единственного потока программы, но это не работает. Кажется, повесили.
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
int main(int argc, char *argv[])
{
printf("-one-\n");
pthread_exit(NULL);
printf("-two-\n");
}
Process Explorer показывает, что (единственный) поток находится вWait:DelayExecution
государство.
В соответствии сpthread_exit
документация:
Процесс должен завершиться со статусом выхода 0 после завершения последнего потока. Поведение должно быть таким, как если бы реализация вызывала exit () с нулевым аргументом во время завершения потока.
я используюDev-C ++ v4.9.9.2 а такжеpthreads-win32 v2.8.0.0 (ссылка противlibpthreadGC2.a
).
Библиотека, кажется, в порядке (например, вызовpthread_self
или жеpthread_create
отmain
работает отлично).
Есть ли причина для того, что я не должен называтьpthread_exit
отmain
?