From owner-FreeBSD-users-jp@jp.freebsd.org  Mon Oct 29 12:19:45 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id MAA68660;
	Mon, 29 Oct 2001 12:19:45 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from mail.asahi-net.or.jp (mail.asahi-net.or.jp [202.224.39.39])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id MAA68655
	for <FreeBSD-users-jp@jp.freebsd.org>; Mon, 29 Oct 2001 12:19:44 +0900 (JST)
	(envelope-from ota@j.email.ne.jp)
Received: from j.asahi-net.or.jp (odin.asahi-net.or.jp [202.224.33.18])
	by mail.asahi-net.or.jp (Postfix) with SMTP id AE87A5F0C
	for <FreeBSD-users-jp@jp.freebsd.org>; Mon, 29 Oct 2001 12:19:44 +0900 (JST)
Received: by j.asahi-net.or.jp (ATSON-1) ; 29 Oct 2001 12:19:44 +0900
From: ota@j.email.ne.jp (Yoshihiro Ota)
To: FreeBSD-users-jp@jp.freebsd.org
Date: 29 Oct 2001 12:19:43 +0900
Mime-Version: 1.0
Lines: 61
X-Disp-Lines: 62
Message-Id: <3BDCCACF.17180.001@odin.j.asahi-net.or.jp>
Content-Type: text/plain; charset="ISO-2022-JP"
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 65199
Subject: [FreeBSD-users-jp 65199] Re pthread
 =?ISO-2022-JP?B?GyRCJSolVyU3JWclcyRyJEQkMSRrJEglUCU5JSgbKEI=?=
 =?ISO-2022-JP?B?GyRCJWkhPBsoSg==?=
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: ota@j.email.ne.jp

$BB@ED$G$9!#(J

$B?=$7Lu$"$j$^$;$s$G$7$?!#(J
$B4*0c$$$,$"$C$F!"=$@5$7$J$,$i=q$$$F$$$?$i$4$A$c$4$A$c$K$J$C$F$$$^$7$?!#(J

>$B:4F#$G$9!#(J
>
>From: ota@j.email.ne.jp (Yoshihiro Ota)
>Subject: [FreeBSD-users-jp 65162] Re: pthread $B%*%W%7%g%s$r$D$1$k$H%P%9%(%i!<(J
>Date: 28 Oct 2001 10:26:23 +0900
>
>ota> rfork() $B$O%a%b%j$r6&M-$7$^$9$,!"(JFreeBSD $B$N(J man $B$K$O:\$C$F$$$^$;$s$G$7$?(J
>
>man $B$O$"$j$^$9$h!#(J

$B$3$l$O!"40A4$J4*0c$$$G$7$?!#(J

>rfork(RFPROC|RFMEM)$B$,%W%m%;%9$N@8@.$H$$$&$N$O@5$7$$$G$9!#(J
>$B8=$K(J rfork(RFPROC|RFMEM) $B$9$k$H%W%m%;%9%F!<%V%k$,0l$D>CHq$5$l$^$9!#(J
>$B$?$@!"(Jrfork(RFPROC|RFMEM)$B$NL\E*$,!"%a%b%j$r6&M-$9$k$?$a$N$b$N$G$O$J$$(J
>$B$H$$$&$N$OM}2r=PMh$^$;$s!#(J

$B$3$3$G$O!"(Jvfork $B$H(J rfork $B$r4*0c$$$7$F$$$^$7$?!#(J

>$B85Mh(J Plan9 $B$G(J rfork(2) $B$,DI2C$5$l$?L\E*$N0l$D$,!"%W%m%;%94V$G%a%b%j$N(J
>$B6&M-$r9T$J$&$3$H$@$C$?$HM}2r$7$F$$$^$9!#(J
>$B$?$@!":#(J Plan9 $B$N%^%K%e%"%k$rFI$s$G8+$k$H!"(JPlan9 $B$G$O%9%?%C%/$O%W%m%;%9Kh$K(J
>$BJ,N%(J($B%^%K%e%"%k$G$O(J "split" $B$H=q$+$l$F$$$k$,!"<B:]$O(J copy $B$+(J?)$B$5$l$k$N$G$9$M!#(J
>$B8=>u$N(J FreeBSD $B$N<BAu$O!"9b5i8@8l$+$i$O;H$$$E$i$$;EMM$K$J$C$F$$$kMM$G$9!#(J

$BOC$OA4A3JQ$o$j$^$9$,!"(JPlan9 $B$N%^%K%e%"%k$O$I$3$+%*%s%i%$%s$G8+$i$l$k$N$G$7$g$&$+!#(J
www.freebsd.org $B$N(J man search $B$G$O(J Plan9 $B$b$"$C$?$N$G(J rfork()
$B$rC5$7$F$_$?$N$G$9$,!"=P$F$3$J$+$C$?$N$G5$$K$J$C$F$$$^$9!#(J

>$B>e5-$NJ8>O$N0UL#$,M}2r=PMh$J$$$N$G$9$,!"OC$rLa$9$H!"(Jlinux clone $B$H(J
>rfork(RFPROC|RFMEM) $B$OK\<AE*$K$OF1$8$J$N$G$O$J$$$N$+!"$H8@$&$N$,;d$,(J
>$B8@$$$?$+$C$?;v$G$9!#(J

$B$3$3$G$$$&>e5-$NJ8>O$N$H$3$m$G8@$$$?$+$C$?$N$O!"(Jman rfork $B$K(J

BUGS
     FreeBSD does not yet implement a native clone() library call, and the
     current pthreads implementation does not use rfork() with RFMEM.  A
     native port of the linux threads library, /usr/ports/devel/linuxthreads,
     contains a working clone() call that utilizes RFMEM.  The rfork_thread()
     library call can often be used instead of clone().

$B$H$"$j!":G4|$N9T$G(J rfork_thread() $B$r(J clone() $B$NJQ$o$j$K;H$($k$H(J
$B$"$k$N$G!"$I$A$i$+$H$$$&$H(J rfork_thread() $B$K;w$F$$$k$N$G$O!#(J

man rfork_thread $B$r$_$k$H(J

DESCRIPTION
     ...

     Using this function should avoid the need to implement complex stack swap
     code.

$B$H$"$k$N$G!"(Jrfork() $B$G$9$H!"3F%9%l%C%I$N%9%?%C%/$r<+J,$G4IM}$7$J$1$l$P(J
$B$$$1$J$5$=$&$G$9!#(J

