that prevented the ifdef ever being true.
[Bug #7281] [ruby-core:48940]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
removed HAVE_PTHREAD_CONDATTR_INIT check because this silly
#ifdef makes use-uninitialized-var issue and (2) native_cond_initialize()
already have a right platform and caller don't need any additional care.
[Bug #6825]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c (RUBY_STACK_MIN): may not a compile time constant.
fix r37079. [ruby-dev:46322] [Bug #7247]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* 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
after using it. Patch by Stanislav Sedov. Thank you.
[Bug #7041] [ruby-core:47619]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c (get_stack): define guard only when it is used.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c (timer_thread_sleep): Extracted out a function from
thread_timer(). Added an alternative implementation for platforms
that lacks select(2) or pipe(2).
(rb_thread_create_timer_thread, native_cond_initialize,
native_cond_destroy): Replaced wrong HAVE_XXX checks.
* configure.in (pthread_attr_init): New check.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c (get_stack): seems stack size does not include
guard size on Mac OS X.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c (ruby_init_stack): adjust stack size for offset of
addr from the bottom.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c (ruby_init_stack): use stack info if possible.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: fix function name to be checked, to initialize
rb_thread_cond_t properly.
* thread_pthread.c (native_cond_initialize, native_cond_destroy):
fix macro name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Patch by Google Inc. [ruby-core:45073].
* configure.in (RUBY_NACL): New M4 func to configure variables for
NaCl.
(RUBY_NACL_CHECK_PEPPER_TYPES): New M4 func to check the old names
of Pepper interface types.
(BTESTRUBY): New variable to specify which ruby should be run on
"make btest". NaCl can run the built binary by sel_ldr, but it need
rbconfig.rb. So this variable is distinguished from $MINIRUBY.
* thread_pthread.c: Disabled some features on NaCl.
* io.c: ditto.
* process.c: ditto.
* signal.c: ditto.
* file.c: ditto.
* missing/flock.c: ditto.
* nacl/pepper_main.c: An example implementation of Pepper application
that embeds Ruby.
* nacl/example.html: An example of web page that uses the Pepper
application.
* nacl/nacl-config.rb: Detects variants of NaCl SDK.
* nacl/GNUmakefile.in: Makefile template for NaCl specific build
process.
* nacl/package.rb: script for packaging a NaCl-Ruby embedding
application.
* nacl/reate_nmf.rb: Wrapper script of create_nmf.py
* dln.c (dln_load): Added a hack to call on NaCl.
* util.c (ruby_getcwd): Path to the current directort is not available
on NaCl.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35672 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c (check_signal_thread_list): add a new function to
check if signal thread list is empty.
* thread_pthread.c (thread_timer): check signal thread list after
timer_thread_function(). main thread might be added into signal thread
list during timer_thread_function().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
only when it is not timer_thread. [Bug #5757] [ruby-dev:44985]
patched by Tomoyuki Chikanaga.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34038 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c (thread_timer): call prctl(PR_SET_NAME) to change
thread name. It may help to debug.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
blocking thread.
A patch created by Koichi Sasada. [ruby-core:39634] [Bug #5343]
to cover race condition, timer thread periodically send SIGVTARLM to
threads in signal thread list. so you should activate timer thread
when interrupt a thread.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
and pthread_cond_broadcast if they return EAGAIN in
native_cond_signal and native_cond_broadcast, respectively.
It is for the pthread implementation of Mac OS X 10.7 (Lion).
fixes#5155. [ruby-dev:44342].
* thread_pthread.c (native_cond_broadcast): ditto.
* thread_pthread.c (struct cached_thread_entry): stop using
pthread_cond_t and its functions directly.
* thread_pthread.c (register_cached_thread_and_wait): ditto.
* thread_pthread.c (use_cached_thread): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32846 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
100,000,000 because Solaris cond_timedwait() return EINVAL if an
argument is greater than current_time + 100,000,000. This is
considered as a kind of spurious wakeup. The caller to native_sleep
should care about spurious wakeup.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
pthread_attr_getstack() if possible. and, remove an assumption
of stack growing direction.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e