# frozen_string_literal: true

require File.expand_path("../../config/environment", __FILE__)

def pretty
  puts "<before>"
  puts PrettyText.cook("My pid is #{Process.pid}")
  GC.start
  sleep 1
  puts "done gc"
end

Discourse.after_fork
pretty

child =
  fork do
    Discourse.after_fork
    pretty
    grand_child =
      fork do
        Discourse.after_fork
        pretty
        puts "try to exit"
        Process.kill "KILL", Process.pid
      end
    puts "before wait 2"
    Process.wait grand_child
    puts "after wait 2"
    Process.kill "KILL", Process.pid
  end

puts "before wait 1"
Process.wait child
puts "after wait 1"