docs: def _post_fork_init(self):
          '''
          Some things need to be init'd after the fork has completed
          The easiest example is that one of these module types creates a thread
          in the parent process, then once the fork happens you'll start getting
          errors like "WARNING: Mixing fork() and threads detected; memory leaked."
          '''
          # Load Runners
          ropts = dict(self.opts)
          ropts['quiet'] = True
          runner_client = salt.runner.RunnerClient(ropts)
          # Load Returners
          self.returners = salt.loader.returners(self.opts, {})
  
          # Init Scheduler
          self.schedule = salt.utils.schedule.Schedule(self.opts,
                                                       runner_client.functions_dict(),
                                                       returners=self.returners)
          self.ckminions = salt.utils.minions.CkMinions(self.opts)
          # Make Event bus for firing
          self.event = salt.utils.event.get_master_event(self.opts, self.opts['sock_dir'], listen=False)
          # Init any values needed by the git ext pillar
          self.git_pillar = salt.daemons.masterapi.init_git_pillar(self.opts)
  
          self.presence_events = False
          if self.opts.get('presence_events', False):
              tcp_only = True
              for transport, _ in iter_transport_opts(self.opts):
                  if transport != 'tcp':
                      tcp_only = False
              if not tcp_only:
                  # For a TCP only transport, the presence events will be
                  # handled in the transport code.
                  self.presence_events = True