Loading:


    pcntl_wait
    int pcntl_wait ( int &$status [, int $options= 0 ] )


    Funkcja wstrzymuje wykonanie bieżącego procesu aż do wyjścia dziecka, lub aż do dostarczonego sygnału który zakańcza bieżący proces lub wywołuje obsługę sygnału funkcji.



    Parametry

     

    status - będzie przechowywał informacje , które mogą być oceniane za pomocą następujących funkcji  pcntl_wifexited(), pcntl_wifstopped(), pcntl_wifsignaled(), pcntl_wexitstatus(), pcntl_wtermsig() i pcntl_wstopsig().


    options - jeśli  wait3 jest dostępny w systemie, możesz wprowadzić opcjonaly parametr options.

    jeśli nie zostanie on dostarczony, będzie czekać do wywołania systemu.

    Jełśi wait3 nie jest dostępny, dostarczaona wartość do options nie wywoła żadnego efektu.

    Oto możliwe wartość dla options oprócz zera

    WNOHANG

    Zwraca natychmiast jeśli wyszło dizecko

    WUNTRACED

    Zwraca dla dziecka które jest zatrzymane i któego status nie został zraportoway.

     

     


    Zwracane wartości


    Zwraca ID procesu któe wyszło.



    Napisz Artyku³

    Listing


    <?php
    declare(ticks = 1);

    $max=5;
    $child=0;

    // funkcja obsługi sygnału
    function sig_handler($signo) {
      global $child;
      switch ($signo) {
       case SIGCHLD:
         echo "SIGCHLD received\n";
         $child--;
      }
    }

    // instalujemy obsługę dla sygnału martwych dzieci
    pcntl_signal(SIGCHLD, "sig_handler");

    while (1){
           $child++;
           $pid=pcntl_fork();
         
           if ($pid == -1) {
                   die("could not fork");
           } else if ($pid) {
                 
                   // mamy rodzica
                   if ( $child >= $max ){
                       pcntl_wait($status);
                       $child++;
                   }
           } else {
                   //mamy dziecko
                   echo "\t Uruchamianie nowego dziecka | obecnie mamy $child \n";
                   // przypuszczalnie robisz coś ciekawego
                   sleep(rand(3,5));
                   exit;
           }
    }
    ?>




    Dodano przez: igor
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors