Ruby-dev$B$K2O4_$r$&$D$7$^$7$?!#(B
On Mon, Jan 27, 2014 at 7:53 AM, nobu [email protected] wrote:
be expanded than allocated size at initialization, by rlimit().
@@ -1,3 +1,15 @@ https://github.com/ruby/ruby/blob/trunk/ChangeLog#L1
if (th) {[ruby-core:60113] [Bug #9454]
size = th->machine_stack_maxsize;
+#if defined(HAVE_GETRLIMIT) && MAINSTACKADDR_AVAILABLEif (pthread_equal(th->thread_id, native_main_thread.id)) {
struct rlimit rlim;
if (getrlimit(RLIMIT_STACK, &rlim) == 0 && rlim.rlim_cur > size) {
size = rlim.rlim_cur;
}
}
+#endif
$B$3$l$,4V0c$C$F$k$3$H$OJ,$+$k$,!"$I$&$7$?$$$N$+$,J,$+$i$J$$!#(B
$B%A%1%C%[email protected]>pJs$,$J$$$N$O$$$D$b$N$3$H$H$O$$$(!&!&!&!&!&(B
$B$^$:!“C1=c$K(Bifdef$B$K(BRLIMIT_STACK$B$NM-L5$,H4$1$F$$$k$H$$$&$N$b$”$k$,!"(B
$B%a%$%s%9%l%C%I$J$i(BRLIM_STACK$B$G<h$l$k$H$$$&$N$,(BLinux$B8GM-$J$N$G!"(B
$B$=$l$O(BHAVE_GETRLIMIT$B$H$+$N5!G=M-L5$8$c$J$/!"(Bifdef linux
$B$G$J$$$H(B
$B$*$+$7$$$h$&$K;W$($k!#(B
[email protected]$H(Brlim_cur$B$,(Bulong$B$G(Binfinity$B$,([email protected]$+$i$D$^$j(BULONG_MAX$B07$$$K$J$C$F(B
$B>o$K%!<%P!<%U%m!<07$$$K$J$i$J$$!#(B
$B$H$$$&$+(B RLIM_INFINITY $B$NCM$O([email protected]$+$iBg>.Hf3S$9$k$^$($K(B
if (rlim.rlim_cur == RLIM_INFINITY) $B$H$+$J$$$H$$+$7$/$J$$$G$9$+!)(B
$B<!$K!"(Bget_stack()$B$G;H$C$F$$$k(Bpthread_getattr_np()$B$O$b$&$A$g$C$H8-$$$3$H$r$d$C$F$$$F!"(B
/proc/self/maps$B$_$F(BVMA$B$N%5%$%:$rD6$($J$$$h$&[email protected]$7$F$k!#$3$l$rHr$1$?$N$O(B
$B$?$V$s!"%7%0%J%k%3%s%F%-%9%H$H$$$&$N$r0U<[email protected]$H;W$&$7!"[email protected]$7$$$H(B
$B;W$&[email protected]$1$I!"$A$g$C$H%i%U$9$.$k0u>]!#(B
$B$I$&$;(B current
thread$B$H$l$J$$$H$-$O!"([email protected]$+$i!"[email protected]$C$?$i(B
$B%a%$%s%9%l%C%I$N%1!<%9$b(B
get_stack$B8F$s$G$7$^$C$?$[$&$,8mH=Dj8:$k$h$&$K;W$($^$9!#(B
$B%A%1%C%H$K=q$$$F$J$$!"(BOS$B$N%P%0>pJs$J$I$"$j$^$7$?$i65$($F2<$5$$!#(B