Re: pcntl - class callbacks // dio ASYNC
| From: | Alan Knowles | Date: | Mon, 12 Aug 2002 13:38:42 +0000 |
| Subject: | Re: pcntl - class callbacks // dio ASYNC | ||
| References: | 1 2 3 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-86738@lists.php.net to get a copy of this message | ||
Jason T. Greene wrote:
Doesn't this currently work without your patch? it does if we add O_ASYNC to the defines in diothe pcntl patch just fixes class based callbacks.. *the memory leaks I mentioned earlier where due to creating the signal connections before forking. - works OK if you connect the signals after forking. regards alan
-Jason On Thu, 2002-08-08 at 02:49, Alan Knowles wrote:this efree needs removing..I can now use the dio with ASYNC like this.. <? dl('dio.so'); /* signal callbacks .... */ function got_data() { global $fd; $data = dio_read($fd,256); if ($data) {+ + efree(*call_name); + DEBUG_OUT("done call_user function\n"); + /*call_user_function(EG(function_table), NULL, call_name, &retval, 1, ¶m TSRMLS_CC); */}echo $data;} } $fd = dio_open('/dev/ttyS0', O_RDWR | O_NOCTTY | O_NONBLOCK); dio_fcntl($fd,F_SETOWN,posix_getpid()); dio_fcntl($fd,F_SETFL, O_ASYNC ); //dio_fcntl($fd,F_SETFL, O_SYNC ); pcntl_signal(SIGIO, 'got_data'); dio_tcsetattr($fd, array( 'baud' => 9600, 'bits' => 8, 'stop' =>1, 'parity' => 0 )); echo "STARTING READ"; while (1) { usleep(1) } ?>