lib/dynflow/watchers/memory_consumption_watcher.rb in dynflow-0.8.22 vs lib/dynflow/watchers/memory_consumption_watcher.rb in dynflow-0.8.23

- old
+ new

@@ -9,17 +9,22 @@ def initialize(world, memory_limit, options) @memory_limit = memory_limit @world = world @polling_interval = options[:polling_interval] || 60 @memory_info_provider = options[:memory_info_provider] || GetProcessMem.new + @memory_checked_callback = options[:memory_checked_callback] + @memory_limit_exceeded_callback = options[:memory_limit_exceeded_callback] set_timer options[:initial_wait] || @polling_interval end def check_memory_state - if @memory_info_provider.bytes > @memory_limit + current_memory = @memory_info_provider.bytes + if current_memory > @memory_limit + @memory_limit_exceeded_callback.call(current_memory, @memory_limit) if @memory_limit_exceeded_callback # terminate the world and stop polling world.terminate else + @memory_checked_callback.call(current_memory, @memory_limit) if @memory_checked_callback # memory is under the limit - keep waiting set_timer end end