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