thread_pthread.c: init stack with ulimit
* thread_pthread.c (ruby_init_stack): use getrlimit() for the main thread on Mac OS X, since pthread_get_stack{addr,size}_np() and return the default value always, but not the ulimit value. [ruby-dev:46174] [Bug #7084] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
5c677a83ba
commit
54c17dc8a9
@ -1,3 +1,10 @@
|
|||||||
|
Wed Oct 3 15:33:02 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* thread_pthread.c (ruby_init_stack): use getrlimit() for the main
|
||||||
|
thread on Mac OS X, since pthread_get_stack{addr,size}_np() and
|
||||||
|
return the default value always, but not the ulimit value.
|
||||||
|
[ruby-dev:46174] [Bug #7084]
|
||||||
|
|
||||||
Wed Oct 3 11:43:15 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
Wed Oct 3 11:43:15 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
* io.c (rb_io_reopen): improvement to accept optional arguments.
|
* io.c (rb_io_reopen): improvement to accept optional arguments.
|
||||||
|
@ -492,6 +492,8 @@ static rb_thread_t *register_cached_thread_and_wait(void);
|
|||||||
#define STACKADDR_AVAILABLE 1
|
#define STACKADDR_AVAILABLE 1
|
||||||
#elif defined HAVE_PTHREAD_GET_STACKADDR_NP && defined HAVE_PTHREAD_GET_STACKSIZE_NP
|
#elif defined HAVE_PTHREAD_GET_STACKADDR_NP && defined HAVE_PTHREAD_GET_STACKSIZE_NP
|
||||||
#define STACKADDR_AVAILABLE 1
|
#define STACKADDR_AVAILABLE 1
|
||||||
|
#undef MAINSTACKADDR_AVAILABLE
|
||||||
|
#define MAINSTACKADDR_AVAILABLE 0
|
||||||
void *pthread_get_stackaddr_np(pthread_t);
|
void *pthread_get_stackaddr_np(pthread_t);
|
||||||
size_t pthread_get_stacksize_np(pthread_t);
|
size_t pthread_get_stacksize_np(pthread_t);
|
||||||
#elif defined HAVE_THR_STKSEGMENT || defined HAVE_PTHREAD_STACKSEG_NP
|
#elif defined HAVE_THR_STKSEGMENT || defined HAVE_PTHREAD_STACKSEG_NP
|
||||||
@ -500,6 +502,14 @@ size_t pthread_get_stacksize_np(pthread_t);
|
|||||||
#define STACKADDR_AVAILABLE 1
|
#define STACKADDR_AVAILABLE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef MAINSTACKADDR_AVAILABLE
|
||||||
|
# ifdef STACKADDR_AVAILABLE
|
||||||
|
# define MAINSTACKADDR_AVAILABLE 1
|
||||||
|
# else
|
||||||
|
# define MAINSTACKADDR_AVAILABLE 0
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef STACKADDR_AVAILABLE
|
#ifdef STACKADDR_AVAILABLE
|
||||||
/*
|
/*
|
||||||
* Get the initial address and size of current thread's stack
|
* Get the initial address and size of current thread's stack
|
||||||
@ -614,7 +624,7 @@ ruby_init_stack(volatile VALUE *addr
|
|||||||
{
|
{
|
||||||
size_t size = 0;
|
size_t size = 0;
|
||||||
size_t space = 0;
|
size_t space = 0;
|
||||||
#if defined(STACKADDR_AVAILABLE)
|
#if MAINSTACKADDR_AVAILABLE
|
||||||
void* stackaddr;
|
void* stackaddr;
|
||||||
STACK_GROW_DIR_DETECTION;
|
STACK_GROW_DIR_DETECTION;
|
||||||
get_stack(&stackaddr, &size);
|
get_stack(&stackaddr, &size);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user