Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

May 07, 2011

  1. kosaki

    fix win32 native_cond_timedwait() makes SIGSEGV.

    * thread_win32.h (rb_thread_cond_struct): add prev field instead of last.
      (ie cond_event_entry is now using double linked list instead of single)
    * thread_win32.c (cond_event_entry): add prev field.
    
    * thread_win32.c (__cond_timedwait): remove entry properly if timeout
      was happen.
    
    * thread_win32.c (native_cond_signal): change for double linked list.
    * thread_win32.c (native_cond_broadcast): ditto.
    * thread_win32.c (native_cond_initialize): ditto.
    
    
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    kosaki authored

Nov 27, 2010

  1. Koichi Sasada

    * thread.c, vm_core.h: make gvl_acquire/release/init/destruct

      APIs to modularize GVL implementation.
    * thread_pthread.c, thread_pthread.h: Two GVL implementations.
      (1) Simple locking GVL which is same as existing GVL.
      (2) Wake-up queued threads.  The wake-up order is simple FIFO.
      (We can make several queues to support exact priorities, however
      this causes some issues such as priority inversion and so on.)
      This impl. prevents spin-loop (*1) caused on SMP environemnts.
      *1: Only one Ruby thread acqures GVL again and again.
      Bug #2359 [ruby-core:26694]
    * thread_win32.c, thread_win32.h: Using simple lock
      not by CRITICAL_SECTION but by Mutex.
      Bug #3890 [ruby-dev:42315]
    * vm.c (ruby_vm_destruct): ditto.
    
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29956 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    ko1 authored

Jul 28, 2008

  1. unak

    * thread_win32.[ch] (cond_every_entry, rb_thread_cond_struct): reverted

    	  r18239 because r18245 made the changes unnecessary.
    
    	* thread.c (rb_mutex_struct): define after including thread_{pthread,
    	  win32}.c.
    
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18248 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    unak authored
  2. unak

    * thread_win32.[ch]: moved definitions of cond_every_entry and

    	  rb_thread_cond_struct from .c to .h because rb_thread_cond_struct
    	  is used in vm_core.h.
    
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    unak authored

Jan 06, 2008

  1. akr

    * $Date$ keyword removed to avoid inclusion of locale dependent

      string.
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    akr authored

Dec 25, 2007

  1. Koichi Sasada

    * thread_pthread.c, thread_pthread.h, thread_win32.c,

      thread_win32.c: make some functions static functions.
      a patch from Tadashi Saito <shiba AT mail2.accsnet.ne.jp>
      in [ruby-core:14407]
    
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    ko1 authored

Nov 13, 2007

  1. Koichi Sasada

    * blockinlining.c, compile.c, compile.h, debug.c, debug.h,

      id.c, insnhelper.h, insns.def, thread.c, thread_pthread.ci,
      thread_pthread.h, thread_win32.ci, thread_win32.h, vm.h,
      vm_dump.c, vm_evalbody.ci, vm_opts.h: fix comments and
      copyright year.
    
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    ko1 authored

Aug 27, 2007

  1. Koichi Sasada

    * thread.c: fix Mutex to be interruptable lock.

    * thread_win32.ci, thread_win32.h, thread_pthread.ci, thread_pthread.h:
      prepare native_cond_*() which are based on pthread_cond_*() spec.
    * prelude.rb: fix Mutex#synchronize method.
    * vm_core.h, include/ruby/intern.h: change unblock function interface
      (to pass some user data).
    * file.c, process.c: ditto.
    * benchmark/bm_vm2_mutex.rb: add a benchmark for mutex.
    * benchmark/bm_vm3_thread_mutex.rb: add a benchmark for mutex
      with contension.
    * benchmark/run.rb: fix to remove ENV['RUBYLIB'] for matzruby.
    * test/ruby/test_thread.rb: add a test.
    * common.mk: fix benchmark options.
    
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    ko1 authored

Feb 07, 2007

  1. Nobuyoshi Nakada

    * thread_win32.h: undefine _WIN32 on cygwin. [ruby-dev:30303]

    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    nobu authored

Feb 06, 2007

  1. Koichi Sasada

    * blockinlining.c, compile.c, compile.h, error.c, eval.c,

      eval_intern.h, eval_jump.h, eval_load.c, eval_method.h,
      eval_safe.h, gc.c, insnhelper.h, insns.def, iseq.c, proc.c,
      process.c, signal.c, thread.c, thread_pthread.ci, thread_win32.ci,
      vm.c, vm.h, vm_dump.c, vm_evalbody.ci, vm_macro.def,
      yarv.h, yarvcore.h, yarvcore.c: change type and macro names:
      * yarv_*_t -> rb_*_t
      * yarv_*_struct -> rb_*_struct
      * yarv_tag -> rb_vm_tag
      * YARV_* -> RUBY_VM_*
    * proc.c, vm.c: move functions about env object creation
      from proc.c to vm.c.
    * proc.c, yarvcore.c: fix rb_cVM initialization place.
    * inits.c: change Init_ISeq() order (after Init_VM).
    * ruby.h, proc.c: change declaration place of rb_cEnv
      from proc.c to ruby.c.
    
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    ko1 authored

Dec 31, 2006

  1. Koichi Sasada

    * Merge YARV

    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    ko1 authored
Something went wrong with that request. Please try again.