class Prometheus::Client::Helper::MmapedFile
Attributes
filepath[R]
size[R]
Public Class Methods
ensure_exclusive_file(file_prefix = 'mmaped_file')
click to toggle source
# File lib/prometheus/client/helper/mmaped_file.rb, line 41 def ensure_exclusive_file(file_prefix = 'mmaped_file') (0..Float::INFINITY).lazy .map { |f_num| "#{file_prefix}_#{Prometheus::Client.pid}-#{f_num}.db" } .map { |filename| File.join(Prometheus::Client.configuration.multiprocess_files_dir, filename) } .find { |path| Helper::FileLocker.lock_to_process(path) } end
new(filepath)
click to toggle source
Calls superclass method
# File lib/prometheus/client/helper/mmaped_file.rb, line 13 def initialize(filepath) @filepath = filepath File.open(filepath, 'a+b') do |file| file.truncate(initial_mmap_file_size) if file.size < MINIMUM_SIZE @size = file.size end super(filepath) end
open(filepath)
click to toggle source
# File lib/prometheus/client/helper/mmaped_file.rb, line 37 def open(filepath) MmapedFile.new(filepath) end
open_exclusive_file(file_prefix = 'mmaped_file')
click to toggle source
# File lib/prometheus/client/helper/mmaped_file.rb, line 48 def open_exclusive_file(file_prefix = 'mmaped_file') filename = Helper::MmapedFile.ensure_exclusive_file(file_prefix) open(filename) end
Public Instance Methods
close()
click to toggle source
# File lib/prometheus/client/helper/mmaped_file.rb, line 24 def close munmap end
Private Instance Methods
initial_mmap_file_size()
click to toggle source
# File lib/prometheus/client/helper/mmaped_file.rb, line 30 def initial_mmap_file_size Prometheus::Client.configuration.initial_mmap_file_size end