Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rubinius/rubinius
base: 7848d871d35c
Choose a base ref
...
head repository: rubinius/rubinius
compare: 2928b6dd49ac
Choose a head ref
  • 2 commits
  • 10 files changed
  • 1 contributor

Commits on Jun 12, 2015

  1. Copy the full SHA
    e32baa3 View commit details
    Browse the repository at this point in the history
  2. Fixed broken SignalException spec.

    This spec has two main problems:
    
    1. It contains a race between executing Process.kill, which will signal the
    process and processing that signal will raise a SignalException, and rescuing
    a SignalException. There's nothing that guarantees that the signal is even
    delivered by the OS before the thread of execution moves on.
    2. It assumes that the signal will be processed in this thread, thereby resulting
    in the exception being raised on this thread and it being possible to rescue the
    exception. This assumption would fail if this code were running in a thread other
    than the one processing signals.
    
    Signals are delivered and handled asynchronously. The signal trapping mechanism
    is the proper way to handle signals. The thread that the signal is processed on
    is undefined in Ruby. Rubinius now processes signals on a dedicated thread that
    is invisible to the other threads (ie, no user code will ever run on that thread
    other than signal handler blocks).
    brixen committed Jun 12, 2015
    Copy the full SHA
    2928b6d View commit details
    Browse the repository at this point in the history