rem: return(0);
add: return 0;
context: void* ecasound_watchdog_thread(void* arg){  int signalno = 0;  struct ecasound_state* state = reinterpret_cast<struct ecasound_state*>(arg);  // cerr << "Watchdog-thread created, pid=" << getpid() << "." << endl;  /* register cleanup routine */  atexit(&ecasound_atexit_cleanup);  /* 1. block until a signal received */#ifdef HAVE_SIGWAIT#ifdef HAVE_SIGPROCMASK  /* the set of signals must be blocked before entering sigwait() */  sigprocmask(SIG_SETMASK, state->signalset, NULL);#endif  sigwait(state->signalset, &signalno);  // cerr << endl << "(ecasound-watchdog) Received signal " << signalno << ". Cleaning up and exiting..." << endl;  /* 2. use pause() instead */#elif HAVE_PAUSE  pause();  // cerr << endl << "(ecasound-watchdog) Received signal and returned from pause(). Cleaning up and exiting..." << endl;  /* 3. if proper signal handling is not possible, stop compilation */#else#error "Neither sigwait() or pause() is available, unable to continue."#endif  state->exit_request = 1;    exit(state->retval);  /* to keep the compilers happy; never actually executed */  return(0);}