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

Commits on May 23, 2016

  1. Copy the full SHA
    7b972ed View commit details
  2. Copy the full SHA
    5f9a19a View commit details
Showing with 16 additions and 2 deletions.
  1. +5 −0 machine/builtin/fiber.cpp
  2. +4 −1 machine/metrics.cpp
  3. +6 −0 machine/metrics.hpp
  4. +1 −1 machine/vm.hpp
5 changes: 5 additions & 0 deletions machine/builtin/fiber.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#include "arguments.hpp"
#include "call_frame.hpp"
#include "memory.hpp"
#include "metrics.hpp"

#include "builtin/array.hpp"
#include "builtin/class.hpp"
@@ -91,6 +92,8 @@ namespace rubinius {
}
}

vm->metrics().system.fibers_destroyed++;

dest->run(state);
dest->value(state, result);

@@ -109,6 +112,8 @@ namespace rubinius {
Fiber* fib = state->memory()->new_object<Fiber>(state, as<Class>(self));
fib->starter(state, callable);

state->vm()->metrics().system.fibers_created++;

state->memory()->needs_finalization(state, fib,
(memory::FinalizerFunction)&Fiber::finalize,
memory::FinalizeObject::eUnmanaged);
5 changes: 4 additions & 1 deletion machine/metrics.cpp
Original file line number Diff line number Diff line change
@@ -461,7 +461,10 @@ namespace rubinius {
"system.threads.created", metrics_data_.system.threads_created));
metrics_map_.push_back(new MetricsItem(
"system.threads.destroyed", metrics_data_.system.threads_destroyed));

metrics_map_.push_back(new MetricsItem(
"system.fibers.created", metrics_data_.system.fibers_created));
metrics_map_.push_back(new MetricsItem(
"system.fibers.destroyed", metrics_data_.system.fibers_destroyed));
}

void Metrics::init_ruby_metrics(STATE) {
6 changes: 6 additions & 0 deletions machine/metrics.hpp
Original file line number Diff line number Diff line change
@@ -324,6 +324,8 @@ namespace rubinius {
metric signals_processed;
metric threads_created;
metric threads_destroyed;
metric fibers_created;
metric fibers_destroyed;

SystemMetrics() {
allocated_bytes = 0;
@@ -337,6 +339,8 @@ namespace rubinius {
signals_processed = 0;
threads_created = 0;
threads_destroyed = 0;
fibers_created = 0;
fibers_destroyed = 0;
}

void add(SystemMetrics& data) {
@@ -351,6 +355,8 @@ namespace rubinius {
signals_processed += data.signals_processed;
threads_created += data.threads_created;
threads_destroyed += data.threads_destroyed;
fibers_created += data.fibers_created;
fibers_destroyed += data.fibers_destroyed;
}
};

2 changes: 1 addition & 1 deletion machine/vm.hpp
Original file line number Diff line number Diff line change
@@ -249,7 +249,7 @@ namespace rubinius {

if(stack_used < 0) stack_used = -stack_used;

if(static_cast<size_t>(stack_used) > stack_size_) {
if(static_cast<size_t>(stack_used) > current_stack_size_) {
raise_stack_error(state);
return false;
}