Is Zomb ie только для основных потоков - PullRequest
0 голосов
/ 28 мая 2020

Я написал образец кода для проверки зомбированных ie потоков и обнаружил, что только несуществующие потоки отображаются для основного потока, а не для других потоков.

#include <pthread.h>
#include <stdio.h>

void *print(void *arg)
{
    int *i = (int *) arg;
    printf("Hi.  I'm thread %d\n", *i);
    sleep(20);
    pthread_exit(NULL);
}

int main()
{
    int i;
    pthread_t tids[4], value[4];
    void *retval;

    for (i = 0; i < 4; i++) {
        value[i] = i;
        pthread_create(tids+i, NULL, print, (value+i));
    }

    pthread_exit(NULL);
    for (i = 0; i < 4; i++) {
        printf("Trying to join with tid %d\n", i);
        //pthread_join(tids[i], &retval);
        printf("Joined with tid %d\n", i);
    }
    return 0;
}

Вывод 'ps -AL'

23456  23456 pts/4    00:00:00 1 <defunct>
 23456  23457 pts/4    00:00:00 1
 23456  23458 pts/4    00:00:00 1
 23456  23459 pts/4    00:00:00 1
 23456  23460 pts/4    00:00:00 1

Когда я пытаюсь изменить logi c, чтобы сначала завершить другой поток перед основным потоком, он не отображается как несуществующий в выводе 'ps -AL'

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