lib/busted/counter.rb in busted-0.2.2 vs lib/busted/counter.rb in busted-0.2.3

- old
+ new

@@ -1,33 +1,37 @@ +require "monitor" require "busted/stack" module Busted class Counter def initialize(stack = Stack.new) @stack = stack + @lock = Monitor.new end def start - stack.started = counts + lock.synchronize { stack.started = counts } end def finish - stack.finished = counts + lock.synchronize { stack.finished = counts } end def report - started = stack.started - finished = stack.finished + lock.synchronize do + started = stack.started + finished = stack.finished - [:method, :constant].each_with_object({}) do |counter, result| - result[counter] = finished[counter] - started[counter] + [:method, :constant].each_with_object({}) do |counter, result| + result[counter] = finished[counter] - started[counter] + end end end private - attr_reader :stack + attr_reader :stack, :lock def counts stat = RubyVM.stat { method: stat[:global_method_state],