Several places in the code were using wait4 while other places were using
waitpid. This change makes all places use waitpid in order to make things
more consistent and since the 'rusage' object passed in/out of wait4 was
never used.
(closes issue ASTERISK-22557)
Reported by: YvesGael
Patches:
asterisk-11.5.1-wait4.patch uploaded by hurdman (license 6537)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@402546
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
ast_log(LOG_WARNING, "Failed to spawn RAS\n");
} else {
for (;;) {
- res = wait4(pid, &status, WNOHANG, NULL);
+ res = waitpid(pid, &status, WNOHANG);
if (!res) {
/* Check for hangup */
if (ast_check_hangup(chan) && !signalled) {
continue;
}
if (res < 0) {
- ast_log(LOG_WARNING, "wait4 returned %d: %s\n", res, strerror(errno));
+ ast_log(LOG_WARNING, "waitpid returned %d: %s\n", res, strerror(errno));
}
if (WIFEXITED(status)) {
ast_verb(3, "RAS on %s terminated with status %d\n", ast_channel_name(chan), WEXITSTATUS(status));
{
pid_t pid;
int res;
- struct rusage rusage;
int status;
#if defined(HAVE_WORKING_FORK) || defined(HAVE_WORKING_VFORK)
_exit(1);
} else if (pid > 0) {
for (;;) {
- res = wait4(pid, &status, 0, &rusage);
+ res = waitpid(pid, &status, 0);
if (res > -1) {
res = WIFEXITED(status) ? WEXITSTATUS(status) : -1;
break;
/*
* Reap all dead children -- not just one
*/
- for (n = 0; wait4(-1, &status, WNOHANG, NULL) > 0; n++)
+ for (n = 0; waitpid(-1, &status, WNOHANG) > 0; n++)
;
if (n == 0 && option_debug)
printf("Huh? Child handler, but nobody there?\n");
int x;
#endif
int res;
- struct rusage rusage;
int status;
#if defined(HAVE_WORKING_FORK) || defined(HAVE_WORKING_VFORK)
_exit(1);
} else if (pid > 0) {
for(;;) {
- res = wait4(pid, &status, 0, &rusage);
+ res = waitpid(pid, &status, 0);
if (res > -1) {
res = WIFEXITED(status) ? WEXITSTATUS(status) : -1;
break;