class Object - puma-3.10.0 Documentation

# class Object

### Public Instance Methods

start(launcher) click to toggle source

    # File lib/puma/plugin/tmp_restart.rb, line 4
    def start(launcher)
      path = File.join("tmp", "restart.txt")

      orig = nil

      # If we can't write to the path, then just don't bother with this plugin
      begin
        File.write(path, "") unless File.exist?(path)
        orig = File.stat(path).mtime
      rescue SystemCallError
        return
      end

      in_background do
        while true
          sleep 2

          begin
            mtime = File.stat(path).mtime
          rescue SystemCallError
            # If the file has disappeared, assume that means don't restart
          else
            if mtime > orig
              launcher.restart
              break
            end
          end
        end
      end
    end