module Concurrent::Stoppable

def before_stop(&block)

def before_stop(&block)
  raise ArgumentError.new('no block given') unless block_given?
  raise Runnable::LifecycleError.new('#before_stop already set') if @before_stop_proc
  @before_stop_proc = block
  self
end

def before_stop_proc

def before_stop_proc
  @before_stop_proc
end