Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Jul 17, 2015
  1. @brixen

    Merge remote-tracking branch 'origin' into 1.8.7

    brixen authored
    Conflicts:
    	gems_list.txt
  2. @brixen
  3. @brixen

    Synchronize ThreadGroup#add. Closes #3467.

    brixen authored
    Ruby generally makes no guarantees about thread safety, however, many
    accidental "guarantees" are assumed by Ruby programmers because of MRI's
    global interpreter lock.
    
    Rubinius makes internal operaions thread safe but generally does not make any
    thread safety guarantees for common Ruby objects like Array or Hash instances.
    It's perfectly possible to "corrupt" an Array by concurrently modifying it
    without synchronization.
    
    ThreadGroup presents an interesting case, however, because it is arguably a
    system structure. The API of ThreadGroup is minimal, consisting of these
    methods: add, enclose, enclosed?, list.
    
    Of these, only add presents a thread safety issue from the perspective of a
    potentially "corrupted" structure (ie the list of Threads in the group). It's
    possible for one Thread to enclose the group and another to get 'false' when
    calling #enclosed? "after" the other Thread called #enclose. That's not a case
    we are concerned with. The case of calling #add (which will implicitly also
    remove the Thread from another group if it is a member) should probably be
    thread safe.
    
    For this reason, we add synchronization around adding (and removing) a Thread
    from a ThreadGroup.
  4. @brixen
Commits on Jul 14, 2015
  1. @brixen

    Fixed setting log file access permissions.

    brixen authored
    Since the process umask can override our open permissions, we need to explicitly
    set the permissions.
  2. @brixen

    Updated Bundler to 1.10.5.

    brixen authored
  3. @brixen
  4. @brixen

    Merge remote-tracking branch 'origin' into 1.8.7

    brixen authored
    Conflicts:
    	Gemfile.lock
    	spec/ruby/shared/process/exit.rb
  5. @brixen
  6. @brixen

    Smash another racey process spec.

    brixen authored
    There is no way to guarantee that the `Process.exit` from the thread completes
    before the `Process.exit` in the main thread. That's not how actual threads
    with no global interpreter lock work.
  7. @brixen

    Reworked halting the system.

    brixen authored
    This is the first step of a much refactor to introduce a proper System object
    instead of hanging all the process boot and halt logic off the Environment
    object. A lot of boot and halt code can then be cleaned up (eg creating and
    initializing the object space, loading the kernel code, etc).
    
    The main process thread (the one the OS creates when the process is first
    created) now boots the system and spawns a thread to start running Ruby code.
    The main thread goes on to process signals and halting the process. This is
    the only thread that processes halt code.
    
    When the process forks, a new thread is created to process signals and
    halting. In the future, fork() and exec() will be disallowed on all internal
    threads and only allowed on threads running Ruby code.
  8. @brixen
Commits on Jul 13, 2015
  1. @YorickPeterse

    Removed "BUNDLER WITH" crap from Gemfile.lock

    YorickPeterse authored
    Bundler no longer adds this when nothing changes, thankfully.
Commits on Jul 9, 2015
  1. @brixen
  2. @brixen

    Removed left over Bert files.

    brixen authored
  3. @brixen

    Calculate total memory diagnostics better.

    brixen authored
    Approximately 20% of the process RSS is still not visible in the diagnostics
    and ~10% of that looks JIT related.
  4. @brixen

    Default eden to 30mb.

    brixen authored
Commits on Jul 8, 2015
  1. @brixen
  2. @brixen
  3. @brixen
  4. @brixen
  5. @brixen
  6. @brixen
  7. @brixen
  8. @brixen

    Fixed CodeManager diagnostics.

    brixen authored
  9. @brixen
  10. @brixen
Commits on Jul 7, 2015
  1. @brixen
  2. @brixen

    Merge remote-tracking branch 'origin' into 1.8.7

    brixen authored
    Conflicts:
    	vm/builtin/object.cpp
    	vm/symbol_table.cpp
    	vm/symbol_table.hpp
    	vm/test/test_symbol_table.hpp
  3. @brixen

    Fixed BakerGC diagnostics.

    brixen authored
  4. @brixen
  5. @brixen

    Added Rubinius::Diagnostics.

    brixen authored
Commits on Jul 3, 2015
  1. @jemc
Commits on Jul 1, 2015
  1. @brixen

    Fixed header file for GCC.

    brixen authored
  2. @brixen

    Fixed include for Linux.

    brixen authored
Something went wrong with that request. Please try again.