From owner-FreeBSD-users-jp@jp.freebsd.org  Tue Feb 13 23:00:57 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id XAA88733;
	Tue, 13 Feb 2001 23:00:57 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from mail2.ecc.u-tokyo.ac.jp (mail2.ecc.u-tokyo.ac.jp [130.69.250.23])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id XAA88726
	for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 13 Feb 2001 23:00:56 +0900 (JST)
	(envelope-from kk96106@mail.ecc.u-tokyo.ac.jp)
Received: from m.ecc.u-tokyo.ac.jp (mail.ecc.u-tokyo.ac.jp [133.11.171.196])
	by mail2.ecc.u-tokyo.ac.jp (8.9.3/3.7W) with ESMTP id XAA16225
	for <FreeBSD-users-jp@jp.freebsd.org>; Tue, 13 Feb 2001 23:00:26 +0900 (JST)
Received: from localhost ([133.11.172.104])
 by m.ecc.u-tokyo.ac.jp (Sun Internet Mail Server sims.3.5.1999.03.02.17.58.p5)
 with ESMTP id <0G8P00COV88PW0@m.ecc.u-tokyo.ac.jp> for
 FreeBSD-users-jp@jp.freebsd.org; Tue, 13 Feb 2001 23:00:25 +0900 (JST)
Date: Tue, 13 Feb 2001 23:00:25 +0900
From: Kazunori Ueno <jagarl@creator.club.ne.jp>
 (=?iso-2022-jp?B?GyRCPmVMbk9CNSobKEI=?=)
To: FreeBSD-users-jp@jp.freebsd.org
Message-id: <20010213230025F.kk96106@mail.ecc.u-tokyo.ac.jp>
MIME-version: 1.0
X-Mailer: Mew version 1.94.1 on XEmacs 21.1 (Channel Islands)
Content-type: Text/Plain; charset=iso-2022-jp
Content-transfer-encoding: 7bit
X-Dispatcher: imput version 20000228(IM140)
Lines: 67
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: FreeBSD-users-jp 59002
Subject: [FreeBSD-users-jp 59002] pthread error?
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: kk96106@mail.ecc.u-tokyo.ac.jp

$B$3$s$K$A$O!">eLn!wElBg?7NN0h$H?=$7$^$9!#(B

$B#2$D$N%W%m%;%9$,6(D4$7$FF0$/%W%m%0%i%`$r(B
$B:n$C$F$$$k$N$G$9$,!"=*N;;~$K;R%W%m%;%9B&$,(B
$B%7%0%J%k$r<u$1$D$1$F$/$l$J$/$F:$$C$F$$$^$9!#(B

$B:G8e$K6qBNE*$J%W%m%0%i%`$rE:IU$7$^$9$,!"(B
$B$=$N%W%m%0%i%`$r(B
 gcc test.c
$B$N$h$&$K%3%s%Q%$%k$9$l$PLdBj$J$$$N$G$9$,(B
 gcc -pthread test.c
$B$N$h$&$K(B pthread $B%*%W%7%g%s$r$D$1$F%3%s%Q%$%k$7!"(B
$B<B9T$9$k$H;R%W%m%;%9$,%7%0%J%k$r<u$1IU$1$J$/$J$j$^$9!#(B
$B!J(BKILL,STOP,CONT$B$O<u$1IU$1$^$9!K(B

FreeBSD 4.2-RELEASE $B$H(B gcc 2.95.2 $B$r;H$C$F$$$^$9!#(B

$B!&(BLinux (Debian)+gcc 2.95.2 $B$G$OLdBj$J$/F0$/(B
$B!&;R%W%m%;%9$,%7%9%F%`%3!<%k(B(sleep$B$J$I(B)$B$r$7$F$$$k;~$J$i(B
$B!!%7%0%J%k$O@5>o$K<u$1IU$1$i$l$k$i$7$$(B
$B!&(B-pthread $B$rIU$1$J$1$l$PLdBj$J$$(B
$B$H$$$C$?$3$H$+$i!"(BFreeBSD $B8GM-$N(B pthread $B$N(B
$BLdBj$G$O$J$$$+$H?dB,$7$?$N$G$9$,!"$I$&$G$7$g$&$+!)(B

                                $B>eLnOB5*!y(Bjagarl@creator.club.ne.jp
                                         $B!z(Bkk90106@mail.ecc.u-tokyo.ac.jp
                                         $B!y(Bjagarl@mrj.biglobe.ne.jp


$B0J2<!"%W%m%0%i%`(B (test.c) -----------------------------------------------
#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#include <sys/wait.h>
#include <stdio.h>

/* $B3F=j$N(B fprintf() $B$O>C$7$F$b7k2L$OJQ$o$i$J$$(B */
static void handler(int signo) {
	fprintf(stderr,"handler called!\n");
	_exit(0);
}

int main(void) {
	int i;
	pid_t pid; int status;
	
	pid = fork();
	if (pid == -1) return 0;
	if (pid == 0) {
		/* child process */
		signal(SIGTERM,handler);
		/* raise(SIGTERM); */ /* $B$3$N9T$rM-8z$K$7$F$b7k2L$OJQ$o$i$J$$(B */
		fprintf(stderr,"child process start\n");
		while(1) ; /* $B$3$3$K(B sleep() $B$J$I$rF~$l$l$PLdBj$O5/$-$J$$(B */
		_exit(0);
	}
	/* parent process */
	sleep(1);
	kill(pid, SIGTERM);
	fprintf(stderr, "waitpid start\n");
	/* $B$3$N(B waitpid $B$G;_$^$k(B */
	/* $B$=$N8e!";R%W%m%;%9$O%7%0%J%k$r<u$1IU$1$J$/$J$k(B */
	waitpid(pid, &status, 0);
	fprintf(stderr, "waitpid end\n");
	
	return 0;
}
