class Sass::Compiler::Dispatcher

def initialize(idle_timeout: 0)

def initialize(idle_timeout: 0)
  @id = 1
  @observers = {}.compare_by_identity
  @mutex = Mutex.new
  @connection = Connection.new
  @connection.listen(self)
  ForkTracker.add(self)
  return unless idle_timeout.positive?
  @last_accessed_time = current_time
  Thread.new do
    Thread.current.name = "sass-embedded-connection-reaper-#{@connection.id}"
    duration = idle_timeout
    loop do
      sleep(duration.negative? ? idle_timeout : duration)
      break if @mutex.synchronize do
        raise Errno::EBUSY if _closed?
        duration = idle_timeout - (current_time - @last_accessed_time)
        duration.negative? && _idle? && _close
      end
    end
    close
  rescue Errno::EBUSY
    # do nothing
  end
end