[PHP-users 15939]
Re: Is it possible that similar coding use signal() and alarm() on
C ?
Youichi Iwakiri
yiwakiri @ st.rim.or.jp
2003年 6月 13日 (金) 20:42:24 JST
いわきりです。
Youichi Iwakiri wrote in <200306131130.UAA23447 @ mail5.rim.or.jp> :
>下記がスクリプトの一部です。
すみません。間違ってました。
>function sig_handler($signo) {
> switch($signo) {
> case SIGALRM:
> cleanup();
> exit;
> default:
> break;
> }
>}
>
>pcntl_signal(SIGALRM, "sig_handler");
>
>function bogus_alarm($t = false) {
> static $s_time;
>
> if ($n)
> $s_time = time();
> $now = time();
> if ($now - $s_time > 5)
> posix_kill(posix_getpid(), SIGALRM);
>}
>
>register_tick_function("bogus_alarm");
>
>// socketのオープン等の処理
>
>$close_connection = false;
>
>declare(ticks = 1) {
> $is_read = false;
> socket_set_nonblock($sock);
> bogus_alarm(5);
> while(!$is_read) {
> $msg = socket_read($sock, 1024);
> if (strlen($msg) > 0) {
> $is_read = true;
> } else if (socket_last_error($sock) != 11) {
> $is_read = true;
> $close_connection = true;
> }
> }
> pcntl_signal(SIGALRM, SIG_IGN); // SIGALRMを無視
> // 続きの処理
>}
--
Youichi Iwakiri
PHP-users メーリングリストの案内