diff options
author | Wayne Davison <wayned@users.sourceforge.net> | 2006-03-27 11:41:17 +0000 |
---|---|---|
committer | Wayne Davison <wayned@users.sourceforge.net> | 2006-03-27 11:41:17 +0000 |
commit | 41fb468fca88b04ddc360b31db08ca4a412e3ee4 (patch) | |
tree | a4ec10c6e2014a5bb48ecf57cd93873618e8df9c | |
parent | 8569055841dfe84d1fa0f8e070e917309560caa4 (diff) | |
download | zsh-41fb468fca88b04ddc360b31db08ca4a412e3ee4.tar.gz zsh-41fb468fca88b04ddc360b31db08ca4a412e3ee4.tar.xz zsh-41fb468fca88b04ddc360b31db08ca4a412e3ee4.zip |
Fixed a compilation problem when HAVE_GETRUSAGE is defined
but HAVE_WAIT3. See the sourceforge bug report: https://sourceforge.net/tracker/?func=detail&atid=104068&aid=1262954&group_id=4068
-rw-r--r-- | Src/jobs.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/Src/jobs.c b/Src/jobs.c index 4f89d0f53..f388da7fd 100644 --- a/Src/jobs.c +++ b/Src/jobs.c @@ -271,7 +271,7 @@ get_usage(void) } -#ifndef HAVE_GETRUSAGE +#if !defined HAVE_WAIT3 || !defined HAVE_GETRUSAGE /* Update status of process that we have just WAIT'ed for */ /**/ @@ -279,17 +279,26 @@ void update_process(Process pn, int status) { struct timezone dummy_tz; - long childs, childu; +#ifdef HAVE_GETRUSAGE + struct timeval childs = child_usage.ru_stime; + struct timeval childu = child_usage.ru_utime; +#else + long childs = shtms.tms_cstime; + long childu = shtms.tms_cutime; +#endif - childs = shtms.tms_cstime; - childu = shtms.tms_cutime; /* get time-accounting info */ get_usage(); gettimeofday(&pn->endtime, &dummy_tz); /* record time process exited */ pn->status = status; /* save the status returned by WAIT */ +#ifdef HAVE_GETRUSAGE + dtime(&pn->ti.ru_stime, &childs, &child_usage.ru_stime); + dtime(&pn->ti.ru_utime, &childu, &child_usage.ru_utime); +#else pn->ti.st = shtms.tms_cstime - childs; /* compute process system space time */ pn->ti.ut = shtms.tms_cutime - childu; /* compute process user space time */ +#endif } #endif |