message: fix wait.cc bugs
diff: @@ -42,9 +42,15 @@ static void signal_handler(int signo)
  if (signo == SIGCHLD)
  {
  int __stat_loc;
  - wait_task *task = nullptr;
  - pid_t __pid = wait(&__stat_loc);
  + while(true)
  + {
  + pid_t __pid = waitpid(-1, &__stat_loc, WNOHANG);
  + if (__pid < 0)
  + {
  + break;
  + }
  + wait_task *task = nullptr;
  if (waitpid_map.find(__pid) != waitpid_map.end())
  {
  task = waitpid_map[__pid];
  @@ -59,7 +65,6 @@ static void signal_handler(int signo)
  {
  child_processes[__pid] = __stat_loc;
  }
  -
  if (task)
  {
  task->status = __stat_loc;
  @@ -68,6 +73,7 @@ static void signal_handler(int signo)
  }
  }
  }
  +}
  void swoole_coroutine_signal_init()
  {
  