aboutsummaryrefslogtreecommitdiffstats
path: root/thread_pthread.c
Commit message (Collapse)AuthorAgeFilesLines
* thread_pthread.c: workaround for valgrind on Macnobu2017-06-091-1/+9
| | | | | | | | | * thread.c: revert r59053. * thread_pthread.c (rb_thread_create_timer_thread): needs more stack space for valgrind. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59055 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread: retry timer thread creation w/o attr on EINVALnormal2017-05-241-2/+13
| | | | | | | | | | | | | | | | | Setting a small stack size can fail due to having 3rd-party libraries (e.g. libkqueue) loaded, if those libraries use thread-local-storage (__thread) heavily. This causes pthread_create to fail with small stacks; even if our timer_thread function does not hit any of the TLS-using code paths. Today, some RubyGems are capable of using libkqueue (or __thread storage directly), and future versions of Ruby may use kqueue internally. cf. https://www.akkadia.org/drepper/tls.pdf git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58874 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] replace Fixnum with Integer [ci skip]nobu2016-10-261-1/+1
| | | | | | * numeric.c: [DOC] update document for Integer class. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: check stack on co-routine casenobu2016-09-031-1/+4
| | | | | | | | * thread_pthread.c (ruby_init_stack): check stack bounds even if get_main_stack succeeded, on the "co-routine" case. https://github.com/ruby/ruby/commit/53953ee#commitcomment-18887413 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56060 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: no fork, no gvl_atforknobu2016-05-201-0/+2
| | | | | | | * thread_pthread.c (gvl_atfork): used in rb_thread_atfork_internal only if HAVE_WORKING_FORK is defined. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: defer setting name in initializenobu2016-04-151-2/+5
| | | | | | | | * thread.c (rb_thread_setname): defer setting native thread name set in initialize until the native thread is created. [ruby-core:74963] [Bug #12290] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54600 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c (reserve_stack): fix reserving position wherenaruse2016-03-241-6/+20
| | | | | | the stack growing bottom to top. [Bug #12118] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c (getstack): __pi_stacksize returned byodaira2016-03-041-1/+4
| | | | | | | pthread_getthrds_np() is wrong on AIX. Use __pi_stackend - __pi_stackaddr instead. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c (rb_thread_create_timer_thread): destroy attr evennagachika2015-12-291-3/+1
| | | | | | if pthread_create() failed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c (rb_thread_create_timer_thread): fix racenormal2015-12-291-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes an occasional [ASYNC BUG] failure in bootstraptest/test_fork.rb '[ruby-dev:37934]' which tests fork/pthread_create failure by setting RLIMIT_NPROC to 1 and triggering EAGAIN on pthread_create when attempting to recreate the timer thread. The problem timeline is as follows: thread 1 thread 2 --------------------------------------------------------------- rb_thread_create_timer_thread setup_communication_pipe rb_thread_wakeup_timer_thread_low pthread_create fails pipe looks valid, write! CLOSE_INVALIDATE (x4) EBADF -> ASYNC BUG The checks in rb_thread_wakeup_timer_thread_low only tried to guarantee proper ordering with native_stop_timer_thread, not rb_thread_create_timer_thread :x Now, this should allow rb_thread_create_timer_thread to synchronize properly with rb_thread_wakeup_timer_thread_low by delaying the validation marking of the timer_thread_pipe until we are certain the timer thread is alive. In this version, rb_thread_wakeup_timer_thread_low becomes a noop. Threading is still completely broken with NPROC==1, but there's not much we can do about it beside warn the user. We no longer spew a scary [ASYNC BUG] message or dump core on them. * thread_pthread.c (setup_communication_pipe): delay setting owner (rb_thread_create_timer_thread): until thread creation succeeds [ruby-core:72590] [Bug #11922] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53373 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c: fix typos.hsbt2015-12-141-1/+1
| | | | | | | | | | | | | [ci skip][fix GH-1140] Patch by @jutaz * dir.c: ditto. * gc.c: ditto. * io.c: ditto. * node.h: ditto. * thread_pthread.c: ditto. * vm_insnhelper.c: ditto. * vsnprintf.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: split SET_THREAD_NAMEnobu2015-12-031-7/+6
| | | | | | | | | | | | * configure.in: separate SET_CURRENT_THREAD_NAME, which can set the name of current thread only, and SET_ANOTHER_THREAD_NAME, which can set the name of other threads. * thread.c (rb_thread_setname): use SET_ANOTHER_THREAD_NAME. OS X is not possible to set another thread name. * thread_pthread.c (native_set_thread_name, thread_timer): use SET_CURRENT_THREAD_NAME. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c (register_ubf_list): renamed fromkosaki2015-11-301-111/+61
| | | | | | | | | | | | | | | | | | | | | | | | | add_signal_thread_list. * thread_pthread.c (unregister_ubf_list): renamed from remove_signal_thread_list. * thread_pthread.c (ubf_wakeup_all_threads): renamed from ping_signal_thread_list. * thread_pthread.c (ubf_wakeup_thread): renamed from ubf_select_each. * thread_pthread.c (ubf_threads_empty): renamed from check_signal_thread_list(). * thread_pthread.c (ubf_list_lock): renamed from signal_thread_list_lock. * thread_pthread.c (register_ubf_list): large simplification by using ccan/list.h. bonus: removed malloc() and exit(EXIT_FAILURE). * thread_pthread.c (unregister_ubf_list): ditto. * thread_pthread.c (ubf_threads_empty): ditto. * thread_pthread.c (ubf_wakeup_all_threads): ditto. * thread_pthread.c (print_signal_list): removed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Haiku now best effort supportnobu2015-11-231-0/+12
| | | | | | | | | | * configure.in: remove obsolete workarounds for Haiku. * dln.c, file.c, io.c: remove obsolete Haiku workarounds. * thread_pthread.c: add stack bounds detection for Haiku. * signal.c: get stack pointer from signal context on Haiku. [ruby-core:67923] [Bug #10811] [Fix GH-1109] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c: fix compile erros whenodaira2015-10-251-0/+6
| | | | | | USE_SLEEPY_TIMER_THREAD is disabled. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: async_bug_fdnobu2015-09-061-3/+15
| | | | | | * thread_pthread.c (async_bug_fd): show failed file descriptor too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51779 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: async bug messagesnobu2015-09-061-13/+14
| | | | | | | * thread_pthread.c (consume_communication_pipe, CLOSE_INVALIDATE): adjust async bug messages. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51777 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c (reserve_stack): ensure the memory is reallynaruse2015-08-181-1/+1
| | | | | | allocated. [Bug #11457] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51626 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: suppress a warningnobu2015-08-141-1/+1
| | | | | | | * thread_pthread.c (native_stop_timer_thread): explicit type of old value to suppress a pointer-sign warning. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51578 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* improve handling of timer thread shutdownnormal2015-08-141-69/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Shutting down the timer thread now always closes pipes to free FDs. In fact, we close the write ends of the pipes is done in the main RubyVM to signal the timer thread shutdown. To effectively close pipes, we implement userspace locks via atomics to force the pipe closing thread to wait on any signal handlers which may be waking up. While we're at it, improve robustness during resource exhaustion and allow it to limp along non-fatally if restarting a timer thread fails. This reverts r51268 Note: this change is tested with VM_CHECK_MODE 1 in vm_core.h * process.c (close_unless_reserved): add extra check (dup2_with_divert): remove (redirect_dup2): use dup2 without divert (before_exec_non_async_signal_safe): adjust call + comment (rb_f_exec): stop timer thread for all OSes (rb_exec_without_timer_thread): remove * eval.c (ruby_cleanup): adjust call * thread.c (rb_thread_stop_timer_thread): always close pipes * thread_pthread.c (struct timer_thread_pipe): add writing field, mark owner_process volatile for signal handlers (rb_thread_wakeup_timer_thread_fd): check valid FD (rb_thread_wakeup_timer_thread): set writing flag to prevent close (rb_thread_wakeup_timer_thread_low): ditto (CLOSE_INVALIDATE): new macro (close_invalidate): new function (close_communication_pipe): removed (setup_communication_pipe_internal): make errors non-fatal (setup_communication_pipe): ditto (thread_timer): close reading ends inside timer thread (rb_thread_create_timer_thread): make errors non-fatal (native_stop_timer_thread): close write ends only, always, wait for signal handlers to finish (rb_divert_reserved_fd): remove * thread_win32.c (native_stop_timer_thread): adjust (untested) (rb_divert_reserved_fd): remove * vm_core.h: adjust prototype git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51576 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (redirect_dup2): when the new FD of dup2() coflictsngoto2015-07-161-0/+23
| | | | | | | | | | | | | | | | | | | | | | with one of the timer thread FDs, the internal FD is diverted. [Bug #11336] [ruby-core:69886] [Bug #11350] [ruby-core:69961] * process.c (dup2_with_divert): new function for the above purpose. * thread_pthread.c (rb_divert_reserved_fd): new function for diverting reserved FD. If the given FD is the same as one of the reserved FDs, the reserved FD number is internally changed. It returns -1 when error. Otherwise, returns 0. It also returns 0 if there is no need to change reserved FD number. * thread_win32.c (rb_divert_reserved_fd): always returns 0 because of no reserved FDs. * internal.h (rb_divert_reserved_fd): prototype declaration. It is Ruby internal use only. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * process.c (redirect_close, parent_redirect_close): should not closengoto2015-07-151-4/+5
| | | | | | | | | | | | | | | reserved FD. It should be closed in the exec system call due to the O_CLOEXEC or FD_CLOEXEC flag. [Bug #11353] [ruby-core:69977] * process.c (close_unless_reserved): new function to close FD unless it is reserved for internal communication. * thread_pthread.c (rb_reserved_fd_p): should check owner_process pid to avoid false positive in forked child process. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51255 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * configure.in: define SET_THREAD_NAME if it has pthread_set_name_npnaruse2015-06-111-3/+3
| | | | | | | | | | | | for FreeBSD, and don't define it if both pthread_setname_np and pthread_set_name_np don't exist. * thread_pthread.c (SET_THREAD_NAME): don't define if they don't exist. * thread_pthread.c (native_set_thread_name): run if SET_THREAD_NAME is defined. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: keep sp safe zonenobu2015-04-141-1/+7
| | | | | | | * thread_pthread.c (reserve_stack): keep sp safe zone to get rid of crash by -fstack-check. [ruby-core:68740] [Bug #11030] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: use rb_pid_tnobu2015-03-011-1/+1
| | | | | | | * thread_pthread.c (timer_thread_pipe.owner_process): process ID should be pid_t. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: Fix intermittent SIGBUS on Linuxnobu2015-01-311-0/+37
| | | | | | | | | * thread_pthread.c (reserve_stack): fix intermittent SIGBUS on Linux, by reserving the stack virtual address space at process start up so that it will not clash with the heap space. [Fix GH-822] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: micro-optimize thread create/joinnormal2015-01-281-25/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * thread.c (struct join_arg): restructure and make smaller (thread_join_sleep): avoid timeofday() call if forever (thread_join): pass join_arg.delay directly (rb_thread_inspect_msg): remove, inline into rb_thread_inspect (rb_thread_inspect): reduce branching and string creation * thread_pthread.c (native_set_thread_name): create string directly to avoid reparsing. [Misc #10723] This reduces time in benchmark/bm_vm_thread_create_join.rb by a few percent. Minor improvements only: target 0: 2.1.5 (ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux]) target 1: trunk (ruby 2.3.0dev (2015-01-16 trunk 49282) [x86_64-linux]) target 2: built (ruby 2.3.0dev (2015-01-16 trunk 49282) [x86_64-linux]) benchmark results: minimum results in each 3 measurements. Execution time (sec) name 2.1.5 trunk built vm_thread_create_join 1.049 1.242 1.138 Speedup ratio: compare with the result of `2.1.5' (greater is better) name trunk built vm_thread_create_join 0.845 0.923 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c (native_set_thread_name): New function toakr2014-09-211-0/+33
| | | | | | | | | | | | | set thread name visible with ps command on GNU/Linux. Ex. ps -o %c -L * thread.c (thread_start_func_2): Call native_set_thread_name at beginning. (rb_thread_inspect_msg): Extract from rb_thread_inspect. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * symbian/*: removed Symbian support.hsbt2014-09-041-1/+1
| | | | | | | | | | [Feature #10199][ruby-core:64725] * dln.c: ditto. * include/ruby/defines.h: ditto. * thread_pthread.c: ditto. * vm.c: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread: prefer rb_nativethread* types/functionsnormal2014-08-151-18/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will make it easier for us to try alternative mutex/condvar implementations while still using pthreads for thread management. [Feature #10134] * thread_pthread.h: define RB_NATIVETHREAD_LOCK_INIT and RB_NATIVETHREAD_COND_INIT macros * thread_pthread.c (native_mutex_lock, native_mutex_unlock, native_mutex_trylock, native_mutex_initialize, native_mutex_destroy, native_cond_wait): use rb_nativethread_lock_t instead of pthread_mutex_t * thread_pthread.c (native_mutex_debug): make argument type-agnostic to avoid later cast. * thread_pthread.c (register_cached_thread_and_wait): replace PTHREAD_COND_INITIALIZER with RB_NATIVETHREAD_COND_INIT, use native_mutex_{lock,unlock} * thread_pthread.c (use_cached_thread): use native_mutex_{lock,unlock} * thread_pthread.c (native_sleep): use rb_nativethread_lock_t to match th->interrupt_lock, use native_mutex_{lock,unlock} * thread_pthread.c (timer_thread_lock): use rb_nativethread_lock_t type git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47185 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread.c: fix for non-scalar pthread_tnobu2014-06-111-1/+5
| | | | | | | | | | | | | | * configure.in (rb_cv_scalar_pthread_t): pthread_t is not required to be a scalar type. * thread.c (fill_thread_id_string, thread_id_str): dump pthread_t in hexadecimal form if it is not a scalar type, assume it can be represented in a pointer form otherwise. based on the patch by Rei Odaira at [ruby-core:62867]. [ruby-core:62857] [Bug #9884] * thread_pthread.c (Init_native_thread, thread_start_func_1), (native_thread_create): set thread_id_str if needed. * vm_core.h (rb_thread_t): add thread_id_string if needed. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: timer thread flagnobu2014-06-111-8/+13
| | | | | | | * thread_pthread.c (timer_thread): add a flag to tell timer thread is created, since 0 may be a valid value as pthread_t. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: variable for errnonobu2014-05-101-7/+12
| | | | | | | | | | * thread_pthread.c (rb_thread_wakeup_timer_thread_fd): use a local variable for errno. * thread_pthread.c (consume_communication_pipe): ditto. add EWOULDBLOCK case. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45909 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: timer_thread_pipe structnobu2014-05-101-18/+23
| | | | | | | * thread_pthread.c (timer_thread_pipe): aggregate timer thread pipe stuff into a struct. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: compare with pthread_equalnobu2014-05-101-1/+1
| | | | | | | * thread_pthread.c (ubf_select): compare thread_id with pthread_equal() but not directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: variable for errnonobu2014-05-101-7/+8
| | | | | | | * thread_pthread.c (timer_thread_sleep): use a local variable for errno. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_*.c: constifynobu2014-05-091-1/+1
| | | | | | * thread_{pthread,win32}.c (native_cond_timedwait): constify. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: define SET_THREAD_NAMEnobu2014-02-271-4/+2
| | | | | | | * configure.in (SET_THREAD_NAME): define according to pthread_setname_np variations. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45190 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* configure.in: use pthread_setname_np only if availablenobu2014-02-131-1/+1
| | | | | | | | * configure.in: check if pthread_setname_np is available. * thread_pthread.c: pthread_setname_np is not available on old Darwins. [ruby-core:60524] [Bug #9492] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: use get_stacknobu2014-01-281-20/+21
| | | | | | | | * thread_pthread.c (ruby_init_stack, ruby_stack_overflowed_p): place get_stack above others to get stack boundary information. [ruby-core:60113] [Bug #9454] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c: rlimit is only available on Linux.naruse2014-01-281-1/+1
| | | | | | | At least r44712 breaks FreeBSD. [ruby-core:60113] [Bug #9454] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* vm_core.h: rb_thread_struct::machinenobu2014-01-281-16/+16
| | | | | | | * vm_core.h (rb_thread_struct): aggregate cpu stuff into a struct, so that a debugger can show its content at once. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44722 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: cast to size_tnobu2014-01-271-1/+1
| | | | | | | * thread_pthread.c (ruby_stack_overflowed_p): range of rlim_cur may be larger than size_t. [ruby-core:60113] [Bug #9454] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: get current main thread stack sizenobu2014-01-271-0/+8
| | | | | | | | * thread_pthread.c: get current main thread stack size, which may be expanded than allocated size at initialization, by rlimit(). [ruby-core:60113] [Bug #9454] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: fix for dynamic PTHREAD_STACK_MINnobu2014-01-211-7/+5
| | | | | | | | * thread_pthread.c (rb_thread_create_timer_thread): fix for platforms where PTHREAD_STACK_MIN is a dynamic value and not a compile-time constant. [ruby-dev:47911] [Bug #9436] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44675 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c (rb_thread_create_timer_thread): fix missing paren.nobu2014-01-211-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44673 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: expand timer thread stack sizenobu2014-01-211-2/+2
| | | | | | | | | * thread_pthread.c (rb_thread_create_timer_thread): expand timer thread stack size to get rid of segfault on FreeBSD/powerpc64. based on the patch by Steve Wills at [ruby-core:59923]. [ruby-core:56590] [Bug #8783] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: timer thread stack sizenobu2014-01-211-8/+9
| | | | | | | * thread_pthread.c (rb_thread_create_timer_thread): define the stack size for timer thread at compile time. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* thread_pthread.c: use get_main_stack properlynobu2013-11-181-10/+15
| | | | | | | | * thread_pthread.c (ruby_init_stack): set stack_start properly by get_main_stack() if possible. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * thread_pthread.c (rb_thread_create_timer_thread): Show errorakr2013-11-161-2/+2
| | | | | | | | | | message instead of error number. * cont.c (fiber_machine_stack_alloc): Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e