Class: AgentJail::Restrictions::ResourceLimits

Inherits:
Base
  • Object
show all
Defined in:
lib/agent_jail/restrictions/resource_limits.rb

Overview

Applies POSIX resource limits (setrlimit) in the child process. Sets both address space (RLIMIT_AS) and CPU time (RLIMIT_CPU).

Instance Method Summary collapse

Constructor Details

#initialize(memory_mb:, cpu_timeout:) ⇒ ResourceLimits

Returns a new instance of ResourceLimits.



8
9
10
11
12
# File 'lib/agent_jail/restrictions/resource_limits.rb', line 8

def initialize(memory_mb:, cpu_timeout:)
  super()
  @memory_bytes = memory_mb * 1024 * 1024
  @cpu_timeout  = cpu_timeout
end

Instance Method Details

#applyObject



14
15
16
17
# File 'lib/agent_jail/restrictions/resource_limits.rb', line 14

def apply
  AgentJail::FFI::Setrlimit.set_memory(@memory_bytes)
  AgentJail::FFI::Setrlimit.set_cpu(@cpu_timeout)
end