void next_signal_thread_destroy (next_signal_thread_status *s)
{
  if (s->signal_thread != THREAD_NULL) {
    gdb_thread_kill (s->signal_thread);
  }

  if (s->receive_fd > 0)
    {
      delete_file_handler (s->receive_fd);
      close (s->receive_fd);
    }
  if (s->transmit_fd > 0)
    close (s->transmit_fd);

  next_signal_thread_init (s);
}
void next_inferior_reset (next_inferior_status *s)
{
  s->pid = 0;
  s->task = TASK_NULL;

  s->attached_in_ptrace = 0;
  s->stopped_in_ptrace = 0;

  s->suspend_count = 0;

  s->last_thread = THREAD_NULL;

  next_signal_thread_init (&s->signal_status);

  next_exception_thread_init (&s->exception_status);

#if defined(WITH_CFM) && WITH_CFM
  next_cfm_thread_init (&s->cfm_status);
#endif /* WITH_CFM */
}