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
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 9f644d75e266
Choose a base ref
...
head repository: rubinius/rubinius
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: dadcfa70996f
Choose a head ref
  • 2 commits
  • 3 files changed
  • 1 contributor

Commits on Jun 6, 2016

  1. Copy the full SHA
    8e0f483 View commit details
  2. Revert "Test if Travis failure is Fiber-related."

    This reverts commit 9f644d7.
    brixen committed Jun 6, 2016
    Copy the full SHA
    dadcfa7 View commit details
Showing with 13 additions and 8 deletions.
  1. +1 −1 .travis.yml
  2. +6 −6 machine/builtin/data.cpp
  3. +6 −1 machine/builtin/fiber.cpp
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -21,7 +21,7 @@ before_install:
- gem --version
before_script:
- travis_retry bundle -j 2
- if [ $TRAVIS_OS_NAME == linux ]; then travis_retry ./configure --without-fibers --llvm-config=llvm-config-3.6; fi
- if [ $TRAVIS_OS_NAME == linux ]; then travis_retry ./configure --llvm-config=llvm-config-3.6; fi
- if [ $TRAVIS_OS_NAME == osx ]; then travis_retry ./configure; fi
script: rake ci
after_success:
12 changes: 6 additions & 6 deletions machine/builtin/data.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
#include "memory.hpp"
#include "object_utils.hpp"
#include "logger.hpp"
#include "memory.hpp"
#include "on_stack.hpp"


#include "builtin/data.hpp"
#include "builtin/class.hpp"

@@ -108,18 +110,17 @@ namespace rubinius {
capi::Handle* handle = data->handle(state);

if(!handle->valid_p()) {
std::cerr << "Data::finalize: object has invalid handle!" << std::endl;
logger::fatal("finalizer: Data object has invalid handle");
return;
}

if(handle->object() != data) {
std::cerr << "Data::finalize: handle does not reference object!" << std::endl;
logger::fatal("finalizer: Data object handle does not reference the object");
return;
}

if(data->freed_p()) {
// TODO: Fix the issue of finalizer ordering.
// std::cerr << "Data::finalize called for already freed object" << std::endl;
logger::fatal("finalizer: Data finalize called for already freed object");
return;
}
data->set_freed();
@@ -155,8 +156,7 @@ namespace rubinius {
}

if(data->freed_p()) {
// TODO: Fix the issue of finalizer ordering.
// std::cerr << "Data::Info::mark called for already freed object" << std::endl;
logger::fatal("finalizer: Data mark called for already freed object");
return;
}

7 changes: 6 additions & 1 deletion machine/builtin/fiber.cpp
Original file line number Diff line number Diff line change
@@ -288,7 +288,12 @@ namespace rubinius {

void Fiber::finalize(STATE, Fiber* fib) {
#ifdef RBX_FIBER_ENABLED
if(!fib->data()) return;
if(!fib->data()) {
logger::fatal("finalizer: Fiber finalize called on instance with NULL data");
return;
}

logger::fatal("finalizer: Fiber finalize");
fib->data()->orphan(state);

delete fib->data();