Patch looks good to me.

--Wez.

On 2/13/07, Nuno Lopes <[EMAIL PROTECTED]> wrote:
Anything against this: http://mega.ist.utl.pt/~ncpl/php_proc_terminate.txt ?
If not, I'll apply it by the end of the week with some new tests.

Nuno


----- Original Message -----
> ID:               39322
> Comment by:       viraptor+phpbug at gmail dot com
> Reported By:      c dot affolter at stepping-stone dot ch
> Status:           Open
> Bug Type:         Documentation problem
> Operating System: Linux 2.4
> PHP Version:      5.1.6
> New Comment:
>
> I'd rather like to see proc_terminate act like documented:
>
> "proc_terminate() allows you terminate the process and continue with
> other tasks. You may poll the process (to see if it has stopped yet) by
> using the proc_get_status() function."
>
> If a known workaround is to send posix_kill, which does... exactly what
> proc_terminate is supposed to do, why not implement proc_terminate as:
>
> stat = proc_get_status(proc);
> if(stat['running']) posix_kill(stat['pid'], sig);
>
> ?
> + update the $proc options as needed. That would be much more useful.
> Additionaly not every signal actually kills process, so resource should
> not be destroyed after SIGTERM.
> Please correct code, not docs.
>
>
> Previous Comments:
> ------------------------------------------------------------------------
>
> [2006-11-08 14:55:16] [EMAIL PROTECTED]
>
> Reclassified as docu problem.
>
> ------------------------------------------------------------------------
>
> [2006-10-31 16:22:53] c dot affolter at stepping-stone dot ch
>
> Description:
> ------------
> After sending a signal via proc_terminate() to a process, the process
> resource gets closed immediately.
> This means that calling proc_get_status() afterwards, will throw a
> warning about an invalid process resource.
>
> This behaviour is somewhat cumbersomely, since you're unable to check
> if it was your signal which has caused the process to terminate or if
> the process has stopped.
>
> Is this a bug or an undocumented behaviour?
>
> BTW:
> Sending a signal via the shell or through posix_kill(), will retain the
> status for the first proc_get_status() call.
>
> Reproduce code:
> ---------------
> <?php
> $descriptors = array(
>    0 => array('pipe', 'r'),
>    1 => array('pipe', 'w'),
>    2 => array('pipe', 'w'));
>
> $pipes = array();
>
> $process = proc_open('/bin/sleep 120', $descriptors, $pipes);
>
> proc_terminate($process);
> var_dump(proc_get_status($process));
>
> ?>
>
>
>
> Expected result:
> ----------------
> array(8) {
>  ["command"]=>
>  string(14) "/bin/sleep 120"
>  ["pid"]=>
>  int(23011)
>  ["running"]=>
>  bool(false)
>  ["signaled"]=>
>  bool(true)
>  ["stopped"]=>
>  bool(false)
>  ["exitcode"]=>
>  int(-1)
>  ["termsig"]=>
>  int(15)
>  ["stopsig"]=>
>  int(0)
> }
>
> Actual result:
> --------------
> Warning: proc_get_status(): 7 is not a valid process resource in ...
>
>
> ------------------------------------------------------------------------
>
>
> --
> Edit this bug report at http://bugs.php.net/?id=39322&edit=1

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to