Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: never-start-ha…
Commits on Oct 5, 2013
  1. More and more

    authored
Commits on Sep 4, 2013
  1. More catch remove

    authored
Commits on Sep 3, 2013
  1. @dbussink
  2. @dbussink

    Merge pull request #2547 from razielgn/time-marshal-ivars

    dbussink authored
    Fix Time marshaling of instance variables.
  3. @razielgn

    Time: store zone in a slot.

    razielgn authored
  4. @kachick

    Update a Module#prepend spec for 2.1 visibility modifying

    kachick authored
    Follow MRI r42810(from ticket#8846)
  5. @kachick

    Add a Module#include spec for 2.1 visibility modifying

    kachick authored
    Follow MRI r42810(from ticket#8846)
  6. @kachick
  7. @kachick
  8. @kachick
  9. @kachick
  10. @razielgn

    Fix Marshal#load with Time.

    razielgn authored
  11. @razielgn

    Fix Marshal#dump with Time.

    razielgn authored
  12. @razielgn
  13. @razielgn
Commits on Sep 2, 2013
  1. @dbussink
  2. @dbussink
  3. @dbussink

    Merge pull request #2582 from kachick/set_constant_on_frozen_module

    dbussink authored
    Module#const_set and {Kernel,Module}.#autoload should raise exceptions on frozen module
Commits on Sep 1, 2013
  1. @dbussink

    Don't double allocate replacement setup for transcoding

    dbussink authored
    This was causing memory leaks because the memory was allocated again
    under the converter_ even when it already was allocated due to a
    previous run.
  2. @dbussink

    Don't try to remove locked object if list is empty

    dbussink authored
    This can happen when the thread is already in the termination process
    and all locks have been cleaned up and only the thread itself is still
    locked.
  3. @dbussink
  4. @dbussink

    Use primitive for signbit

    dbussink authored
    The FFI approach would lead to Valgrind erroring with jumps on
    uninitialized values. This was due to GCC optimizations that would be
    done with the signbit macro.
    
    With this approach we don't get these errors and don't have to add the
    ffi_util method.
  5. @dbussink

    Set encoding last because it reads ascii_only and valid_encoding

    dbussink authored
    This fixes a jump on uninitialized memory warning in valgrind.
Commits on Aug 31, 2013
  1. @dbussink

    Lock around kind of symbol lookup

    dbussink authored
    Also cleans up symboltable size code. We already track the size anyway
    so all places needing the size should just used that.
  2. @kachick
  3. @kachick
  4. @kachick
  5. @kachick
  6. @kachick
  7. @dbussink

    Lock around all symboltable operations

    dbussink authored
    These operations weren't locked around, so it could cause issues when
    a thread for example was resizing the backend storage for symbols and
    another thread was using lookup_debug_string.
    
    This could for example happen when the JIT was running since that uses
    lookup_debug_string. It uses this for the module naming of jitted
     methods. If at that same time symbols were added and a resize
    necessary, this could cause invalid memory usage or corruption.
  8. @dbussink

    Create global for encoding list

    dbussink authored
    This way we don't need a symbol lookup inside the path for symbol
    lookup. This would cause a deadlock with fixing some SymbolTable locking
    issues.
  9. @dbussink

    Don't unlock thread itself in unlock_locks

    dbussink authored
    This removes the need for the unlock / lock pair in the thread logic.
  10. @dbussink

    Fix race when unlocking locks for a thread

    dbussink authored
    The problem was that we unlocked the locks first after the thread was
    marked as not alive. This opened a race for seeing a mutex as still
    locked after a thread was joined, since that thread was seen as not
    alive and not waited for while it was still terminating and unlocking
    locks.
    
    This would cause a sporadic spec failure like this:
    
    1)
    Mutex#locked? returns the status of the lock FAILED
    Expected true to be false
               { } in Object#__script__ at spec/ruby/shared/mutex/locked.rb:31
      BasicObject(Object)#instance_eval at kernel/common/eval19.rb:45
          { } in Enumerable(Array)#all? at kernel/common/enumerable.rb:104
                             Array#each at kernel/bootstrap/array.rb:68
                 Enumerable(Array)#all? at kernel/common/enumerable.rb:104
                  Integer(Fixnum)#times at kernel/common/integer.rb:83
                             Array#each at kernel/bootstrap/array.rb:68
               { } in Object#__script__ at spec/ruby/core/mutex/locked_spec.rb:5
                      Object#__script__ at spec/ruby/core/mutex/locked_spec.rb:4
                            Kernel.load at kernel/common/kernel.rb:584
      BasicObject(Object)#instance_eval at kernel/common/eval19.rb:45
                             Array#each at kernel/bootstrap/array.rb:68
       Rubinius::CodeLoader#load_script at kernel/delta/codeloader.rb:68
       Rubinius::CodeLoader.load_script at kernel/delta/codeloader.rb:111
                Rubinius::Loader#script at kernel/loader.rb:648
                  Rubinius::Loader#main at kernel/loader.rb:847
    
    When we move this up we have to do an unlock / lock around it, since
    unlock_locks would unlock all objects, also the thread itself, so we
    need to lock it again.
Commits on Aug 30, 2013
  1. @dbussink
Something went wrong with that request. Please try again.