From owner-FreeBSD-users-jp@jp.freebsd.org  Thu Aug 30 01:20:24 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id BAA78084;
	Thu, 30 Aug 2001 01:20:24 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from psun0.phys.kyushu-u.ac.jp (psun0.phys.kyushu-u.ac.jp [133.5.164.40])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id BAA78079
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 30 Aug 2001 01:20:24 +0900 (JST)
	(envelope-from shimizu@phys.kyushu-u.ac.jp)
Received: (from shimizu@localhost)
	by psun0.phys.kyushu-u.ac.jp (8.9.1a/3.7Wpl2-01071717) id BAA11416;
	Thu, 30 Aug 2001 01:20:23 +0900 (JST)
Date: Thu, 30 Aug 2001 01:20:23 +0900 (JST)
Message-Id: <200108291620.BAA11416@psun0.phys.kyushu-u.ac.jp>
To: FreeBSD-users-jp@jp.freebsd.org
Cc: shimizu@psun0.phys.kyushu-u.ac.jp
In-Reply-To: Your message of "Wed, 29 Aug 2001 12:58:13 +0900".
	<20010829125133.0529.AOYAGI@ss.iij4u.or.jp>
From: shimizu@psun0.phys.kyushu-u.ac.jp (Yoshifumi R. Shimizu)
X-Mailer: mnews [version 1.22] 1999-12/19(Sun)
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+010328
X-Sequence: FreeBSD-users-jp 63908
Subject: [FreeBSD-users-jp 63908] Re: Problem when multiply opeing /dev/io
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: shimizu@psun0.phys.kyushu-u.ac.jp

$@@6?e!w6eBgM}J*M}$G$9(J($@$A$g$C$HD9J8$G$9(J)$@!#(J

$@!!;O$a$KD{@5$G$9$,!"(Jsignal handling $@$N$3$H$r(J xload $@$r;29M$K$7$?$+$N(J
$@$h$&$K=q$-$^$7$?$,4V0c$$$G!"(JX $@$N:nK!$K$D$$$F$O(J xload $@$r;29M$K$7$?(J
$@$b$N$N!"(Jsingal $@$K$D$$$F$O!V(JUNIX C $@%W%m%0%i%_%s%0!W(JDavid A.  Curry$@Cx(J
($@%"%9%-!<=q@R=PHGIt(J)$@$N(J 8$@>O%7%0%J%k$N=hM}!"$r;29M$K$7$?$N$G$7$?!#(J

$@!!@DLx$5$s(J[Shigekazu Aoyagi(aoyagi@ss.iij4u.or.jp)]$@!"(J

>$@%?%$%^!<3d$j9~$_$H$$$&$N$O!"(JCPU $@$N3d$j9~$_5!G=$N$3$H$G$7$g$&$+!#(J
>$@$H$$$&;v$O!"$3$N(Jsignal handler$@$O%+!<%M%k%b!<%I$GF0:n$7$F$$$k(J
>$@$H$$$&;v$O$"$j$^$;$s$G$7$g$&$+!#$b$7$b%+!<%M%k%b!<%I$GF0:n$7$F$$$k(J
>$@$N$G$"$l$P!"%I%i%$%P$NGSB>@)8f$J$I$rL5;k$7$FFM$CAv$C$F$7$^$C$FF0:n$,(J
>$@$*$+$7$/$J$k$3$H$OM-$jF@$k$+$H;W$$$^$9!#(J

signal(3) $@4X?t$K$h$k(J SIGALRM $@$NJaB*$J$s$G$9$,!"$3$N(J signal handler
$@Fb$N%3!<%I$O%+!<%M%k%b!<%I$GF0$/$N$G$7$g$&$+(J($@4pK\E*$J$3$H$,$o$+$C$F(J
$@$$$J$/$F$I$&$b$9$_$^$;$s(J)$@!#$b$7!"$=$&$@$H$9$k$H$*$C$7$c$kDL$j$d$P$$(J
$@$3$H$r$7$F$$$k$N$+$b$7$l$^$;$s$M!#(J
$@!!$"$l$+$i%F%9%H$7$F$$$F5$$E$$$?$3$H$O!"(Jxmbmon $@$r5/F0$7$?8e$K(J /dev/io
$@$r(J open $@$9$k$HK=Av$9$k$,!"@h$K(J /dev/io $@$r(J open $@$7$FBT$?$;$F$$$k4V$K(J
xmbmon $@$r5/F0$7$F$bK=Av$7$^$;$s!#$^$?!"K=Av$9$k$N$O(J xmbmon$@Cf$N(J
alarm signal handler $@$+$i(J return $@$7$?D>8e$G$9(J(kernel $@Cf$+$*$=$i$/(J
X $@$N(J even loop code $@Fb(J)$@!#D9$/$J$$$N$G$,!"2<$K%3!<%I$N%9%1%k%H%s$r(J
$@<($7$^$9!#(J

int main(int argc, char *argv[])
{
    XtAppContext app_con;
      .  
      .  
   ( X $@$N(J resource $@@_Dj$J$I!"N,(J)
      .  
   if (signal(SIGALRM, SIG_IGN) != SIG_IGN)
       signal(SIGALRM, (sig_t) alarm_handler);
                                <--  SIGALRM $@$N(J handler $@$r%;%C%H(J

   ( struct itimerval *itp $@$NCM(J:$@;~4V4V3V(J:$@$N@_Dj!"N,(J)

    setitimer(ITIMER_REAL, itp, (struct itimerval *) 0);
                                          <--  $@%?%$%^!<$N5/F0(J
    XtAppMainLoop(app_con);  <--- X $@$N(J even loop
}

sig_t alarm_handler(int sig)
{

*1  signal(sig, SIG_IGN);       <-- $@%7%0%J%k$NL5;k(J

   ( open(i=/dev/io) $@$7$F!"%O!<%I%&%(%"%b%K%?%A%C%W$+$i(J      ) <-- $@IA2h$N(J
   ( $@29EY$J$I$N>pJs$rF@!"(Jclose(i); $@$=$l$r$b$H$K%0%i%UI=<(!"N,(J) <--  $@K\BN(J

    setitimer(ITIMER_REAL, itp, (struct itimerval *) 0);
*2  signal(SIGALRM, (sig_t) alarm_handler);
                                <--  $@%?%$%^!<$N5/F0$H(J handler $@%;%C%H(J
}

gdb $@$G(J *1 $@$H(J *2 $@$N4V$G(J step $@<B9T$7$F$_$^$7$,!"K=Av$9$k$N$O(J *2 $@$N8e(J
handler $@$,(J return $@$7$?D>8e$J$o$1$G$9!#(J

>$@<!$N$I$A$i$+$NJ}K!$r8!F$$5$l$F$_$F$O$$$+$,$G$7$g$&$+!#(J
>
>$@!&(Jsignal handler$@$G$O%U%i%0$rJQ2=$5$;$k$@$1$K$7$F!"%a%$%s%W%m%0%i%`B&$G(J
>$@!!%]!<%j%s%0$G%U%i%04F;k$7$F=hM}$r9T$&!#(J
>
>$@!&%?%$%^!<3d$j9~$_$G$O$J$/!"%?%$%^!<%$%Y%s%H$rH/@8$5$;$k!#(J
>$@!!(J# X $@$G$=$N$h$&$J$3$H$,=PMh$k$N$G$7$g$&$+(J?

$@@DLx$5$s$N$4;XE&$,@5$7$$$H$9$k$H!"(JX $@$N(J even loop $@$r<+J,$G:n$C$F(J
$@$=$NCf$G(J /dev/io $@$r(J open $@$9$k$h$&$J:n6H$r$5$;$h!"$H$$$&$3$H$G$9$M!#(J
$@$=$NJ}8~$G9M$($F$_$^$9!#$=$l$+$i!"%?%$%^!<%$%Y%s%H$rH/@8$5$;$k$H(J
$@$$$&$N$O>e$N(J SIGARLM singal $@$rMxMQ$9$k$3$H$H$O0c$&$N$G$7$g$&$+!#(J

$@!!6e=#Bg3XBg3X1!M}3X8&5f1!J*M}3XItLg(J  $@@6?eNIJ8(J
