Главная страница


ru.unix

 
 - RU.UNIX ----------------------------------------------------------------------
 From : Mikhail V. Majorov                   2:5020/400     28 Dec 2000  12:31:36
 To : All
 Subject : fork и зомби
 -------------------------------------------------------------------------------- 
 
 Добрый день.
 
 Я пишу софт. Подскажите как мне избавлятся от собственных зомби.
 Привожу пример основного цикла ожидания входящих коннектов....
 Код возврата потомков меня совсем не интересует и хотелось бы не
 напрягаясь отказатся от
 хранения в таблице процессов этой информации не дожидаясь wait.
 Hу или как мне упростить решение этой проблемы...
 
 for(;;) {
   FD_ZERO(&select_set);
   FD_SET(s, &select_set);
   // wait for client
   if ((select(FD_SETSIZE, &select_set, 0, 0, &timeout) > 0)
                                          && FD_ISSET(s, &select_set)) {
    if ((nsid = accept(s, &rsock, &rsock_len)) == -1 ) {
       syslog(LOG_NOTICE, "dummy connection: %m");
       continue;
    }
 
    if (flag_fork) pid = fork() else pid = -2;
        
    switch (pid) {
       case 0:     // children
        close(s);
       case -2:    // without fork
        if (conn_allow((struct sockaddr_in *)&rsock)) talk_client(nsid);
        close(nsid);
        if (pid == 0) exit(0);
        break;
       case -1: // fork error
        syslog(LOG_ERR, "fork: %m");
       default: // parent
        close(nsid);
       }
    }
   }
 
 -- 
 
 С уважением, Михаил.
 --- ifmail v.2.15dev5
  * Origin: Taganrog electrocommunication node (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 fork и зомби   Mikhail V. Majorov   28 Dec 2000 12:31:36 
 Re: fork и зомби   Dmitry S. Rzhavin   28 Dec 2000 12:56:02 
 Re: fork и зомби   Max Khon   28 Dec 2000 22:48:14 
 Re: fork и зомби   Yuriy Kaminskiy   29 Dec 2000 06:06:09 
Архивное /ru.unix/1515d83b7730.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional