Class: Rjq::VM::InstructionBudget

Inherits:
Object
  • Object
show all
Defined in:
lib/rjq/vm.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(maximum) ⇒ InstructionBudget

Returns a new instance of InstructionBudget.



8
9
10
11
# File 'lib/rjq/vm.rb', line 8

def initialize(maximum)
  @maximum = maximum
  @count = 0
end

Instance Attribute Details

#maximumObject (readonly)

Returns the value of attribute maximum.



6
7
8
# File 'lib/rjq/vm.rb', line 6

def maximum
  @maximum
end

Instance Method Details

#charge!Object

Raises:



13
14
15
16
17
18
# File 'lib/rjq/vm.rb', line 13

def charge!
  return unless @maximum

  @count += 1
  raise ResourceLimitError, "instruction limit exceeded (#{@maximum})" if @count > @maximum
end