lib/prometheus/client/mmaped_dict.rb in prometheus-client-mmap-0.7.0.beta28 vs lib/prometheus/client/mmaped_dict.rb in prometheus-client-mmap-0.7.0.beta29

- old
+ new

@@ -37,19 +37,19 @@ rescue StandardError => e raise ParsingError, "exception #{e} while processing metrics file #{path}" end def read_value(key) - init_value(key) unless @positions.key?(key) + pos = @m.add_entry(@positions, key, 0.0) - @m.get_double(@positions[key]) + @m.get_double(pos) end def write_value(key, value) - init_value(key) unless @positions.key?(key) + pos = @m.add_entry(@positions, key, 0.0) - pos = @positions[key] + # pos = @positions[key] @m[pos..pos + 7] = [value].pack('d') end def path @m.filepath if @m @@ -62,25 +62,11 @@ Prometheus::Client.logger.warn("munmap raised error #{e}") end private - def ok(key) - @m.add_entry(@positions, key, 0.0) - rescue RuntimeError => e - raise e if e.message.match /.*ugh.*/ - nil - end - def init_value(key) - until ok(key) - filepath = @m.filepath - size = @m.size - @m.close - - File.truncate(filepath, size * 2) - @m = Helper::MmapedFile.open(filepath) - end + @m.add_entry(@positions, key, 0.0) end # Yield (key, pos). No locking is performed. def read_all_positions @m.entries.map do |data, encoded_len, _, absolute_pos|