def start(self):
      _tryGevent()
      # Start grabbing SIGCHLD within libev event loop.
      gevent.get_hub().loop.install_sigchld()
      # Run new process (based on `fork()` on POSIX-compliant systems).
      super(_GProcess, self).start()
      # The occurrence of SIGCHLD is recorded asynchronously in libev.
      # This guarantees proper behavior even if the child watcher is
      # started after the child exits. Start child watcher now.
      self._sigchld_watcher = gevent.get_hub().loop.child(self.pid)
      self._returnevent = gevent.event.Event()
      self._sigchld_watcher.start(self._on_sigchld, self._sigchld_watcher)