2693fd1543b138ac960e49d8a03afd384bc45ed1
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

1) #include "cleaner.h"
2) #include "event.h"
3) #include "timing.h"
Stefan Schuermans formatting

Stefan Schuermans authored 4 years ago

4) #include <uptev/proc_end.h>
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

5) 
6) #include <uproctrace.pb-c.h>
7) 
8) #include <stdlib.h>
Stefan Schuermans implement user/sys time + m...

Stefan Schuermans authored 4 years ago

9) #include <sys/resource.h>
10) #include <sys/time.h>
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

11) #include <sys/types.h>
12) #include <unistd.h>
13) 
14) int uptev_proc_end(void **data, size_t *size) {
15)   *data = NULL;
16)   *size = 0;
17) 
18)   uptev_cleaner_t *cleaner = uptev_cleaner_new();
Stefan Schuermans formatting

Stefan Schuermans authored 4 years ago

19)   if (!cleaner) {
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

20)     return -1;
21)   }
22) 
23)   struct _Uproctrace__Timespec timestamp = UPROCTRACE__TIMESPEC__INIT;
24)   uptev_timing_get_timestamp(&timestamp);
25) 
Stefan Schuermans implement user/sys time + m...

Stefan Schuermans authored 4 years ago

26)   struct _Uproctrace__Timespec cpu_time = UPROCTRACE__TIMESPEC__INIT;
27)   uptev_timing_get_proc_cpu_time(&cpu_time);
Stefan Schuermans rename: lwproctrace -> upro...

Stefan Schuermans authored 4 years ago

28) 
29)   struct _Uproctrace__ProcEnd proc_end = UPROCTRACE__PROC_END__INIT;
30)   proc_end.pid = getpid();
Stefan Schuermans implement user/sys time + m...

Stefan Schuermans authored 4 years ago

31)   proc_end.cpu_time = &cpu_time;
32) 
33)   struct rusage usage;
34)   struct _Uproctrace__Timespec user_time = UPROCTRACE__TIMESPEC__INIT;
35)   struct _Uproctrace__Timespec sys_time = UPROCTRACE__TIMESPEC__INIT;
36)   if (getrusage(RUSAGE_SELF, &usage) == 0) {
37)     uptev_timing_timeval_to_pb(&usage.ru_utime, &user_time);
38)     proc_end.user_time = &user_time;
39)     uptev_timing_timeval_to_pb(&usage.ru_stime, &sys_time);
40)     proc_end.sys_time = &sys_time;
41)     proc_end.has_max_rss_kb = 1;
42)     proc_end.max_rss_kb = usage.ru_maxrss;
43)   }