class Bootsnap::CLI::WorkerPool

def cpu_quota

def cpu_quota
  if RbConfig::CONFIG["target_os"].include?("linux")
    if File.exist?("/sys/fs/cgroup/cpu.max")
      # cgroups v2: https://docs.kernel.org/admin-guide/cgroup-v2.html#cpu-interface-files
      cpu_max = File.read("/sys/fs/cgroup/cpu.max")
      return nil if cpu_max.start_with?("max ") # no limit
      max, period = cpu_max.split.map(&:to_f)
      max / period
    elsif File.exist?("/sys/fs/cgroup/cpu,cpuacct/cpu.cfs_quota_us")
      # cgroups v1: https://kernel.googlesource.com/pub/scm/linux/kernel/git/glommer/memcg/+/cpu_stat/Documentation/cgroups/cpu.txt
      max = File.read("/sys/fs/cgroup/cpu,cpuacct/cpu.cfs_quota_us").to_i
      # If the cpu.cfs_quota_us is -1, cgroup does not adhere to any CPU time restrictions
      # https://docs.kernel.org/scheduler/sched-bwc.html#management
      return nil if max <= 0
      period = File.read("/sys/fs/cgroup/cpu,cpuacct/cpu.cfs_period_us").to_f
      max / period
    end
  end
end