comparison src/w32.c @ 97371:23de3091fdd0

(process_times): Fix the case of System process.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 09 Aug 2008 18:19:28 +0000
parents a8d58587d1b0
children aeb822613377
comparison
equal deleted inserted replaced
97370:758f38fd4cba 97371:23de3091fdd0
3606 *stime = ltime (stime_sec, stime_usec); 3606 *stime = ltime (stime_sec, stime_usec);
3607 tem2 = convert_time_raw (ft_user) * 0.1L; 3607 tem2 = convert_time_raw (ft_user) * 0.1L;
3608 utime_usec = fmodl (tem2, 1000000.0L); 3608 utime_usec = fmodl (tem2, 1000000.0L);
3609 utime_sec = tem2 * 0.000001L; 3609 utime_sec = tem2 * 0.000001L;
3610 *utime = ltime (utime_sec, utime_usec); 3610 *utime = ltime (utime_sec, utime_usec);
3611 tem = (convert_time_raw (ft_creation) - utc_base) * 0.1L; 3611 tem = convert_time_raw (ft_creation);
3612 /* Process no 4 (System) returns zero creation time. */
3613 if (tem)
3614 tem = (tem - utc_base) * 0.1;
3612 ctime_usec = fmodl (tem, 1000000.0L); 3615 ctime_usec = fmodl (tem, 1000000.0L);
3613 ctime_sec = tem * 0.000001L; 3616 ctime_sec = tem * 0.000001L;
3614 *ctime = ltime (ctime_sec, ctime_usec); 3617 *ctime = ltime (ctime_sec, ctime_usec);
3615 tem = (convert_time_raw (ft_current) - utc_base) * 0.1L - tem; 3618 if (tem)
3619 tem = (convert_time_raw (ft_current) - utc_base) * 0.1L - tem;
3616 etime_usec = fmodl (tem, 1000000.0L); 3620 etime_usec = fmodl (tem, 1000000.0L);
3617 etime_sec = tem * 0.000001L; 3621 etime_sec = tem * 0.000001L;
3618 *etime = ltime (etime_sec, etime_usec); 3622 *etime = ltime (etime_sec, etime_usec);
3619 3623
3620 *pcpu = 100.0 * (tem1 + tem2) / tem; 3624 if (tem)
3625 {
3626 *pcpu = 100.0 * (tem1 + tem2) / tem;
3627 if (*pcpu > 100)
3628 *pcpu = 100.0;
3629 }
3630 else
3631 *pcpu = 0;
3632
3633 return 1;
3621 } 3634 }
3622 3635
3623 Lisp_Object 3636 Lisp_Object
3624 w32_system_process_attributes (pid) 3637 w32_system_process_attributes (pid)
3625 Lisp_Object pid; 3638 Lisp_Object pid;