message: fix: fix
  * fix: fix
  We must set the signal before fork, or we may lose the signal
  * fix: register SIGCHLD signal before try waitpid
  * improvement: add comment
diff: @@ -134,16 +134,15 @@ pid_t System::waitpid(pid_t __pid, int *__stat_loc, int __options, double timeou
  return ::waitpid(__pid, __stat_loc, __options);
  }
  - /* try once if failed we init the task */
  + /* try once if failed we init the task, and we must register SIGCHLD before try waitpid, or we may lose the SIGCHLD */
  wait_task task;
  + signal_init();
  task.pid = ::waitpid(__pid, __stat_loc, __options | WNOHANG);
  if (task.pid > 0)
  {
  return task.pid;
  }
  - signal_init();
  -
  task.pid = -1;
  task.status = 0;
  task.co = Coroutine::get_current();
  