aboutsummaryrefslogtreecommitdiff
path: root/src/timer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/timer.c')
-rw-r--r--src/timer.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/timer.c b/src/timer.c
index 1634462..cece63a 100644
--- a/src/timer.c
+++ b/src/timer.c
@@ -11,25 +11,24 @@
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details. 12 GNU General Public License for more details.
13 13
14 You should have received a copy of the GNU General Public License along 14 You should have received a copy of the GNU General Public License along
15 with wydawca. If not, see <http://www.gnu.org/licenses/>. */ 15 with wydawca. If not, see <http://www.gnu.org/licenses/>. */
16 16
17#include <wydawca.h> 17#include <wydawca.h>
18#include <sys/time.h> 18#include <sys/time.h>
19#include <sys/resource.h> 19#include <sys/resource.h>
20#include <unistd.h> 20#include <unistd.h>
21#include <string.h> 21#include <string.h>
22#include <ctype.h> 22#include <ctype.h>
23#include <xalloc.h>
24 23
25struct timer_slot 24struct timer_slot
26{ 25{
27 char *name; 26 char *name;
28 double real; 27 double real;
29 double self_user; /* user time in sec */ 28 double self_user; /* user time in sec */
30 double self_system; /* system time in sec */ 29 double self_system; /* system time in sec */
31 double children_user; /* user time in sec */ 30 double children_user; /* user time in sec */
32 double children_system; /* system time in sec */ 31 double children_system; /* system time in sec */
33 struct timeval real_mark; 32 struct timeval real_mark;
34 struct rusage self_mark; 33 struct rusage self_mark;
35 struct rusage children_mark; 34 struct rusage children_mark;
@@ -173,25 +172,25 @@ timer_format_time (double t)
173 s -= h * 3600; 172 s -= h * 3600;
174 m = s / 60; 173 m = s / 60;
175 s -= m * 60; 174 s -= m * 60;
176 175
177 if (d) 176 if (d)
178 grecs_asprintf (&str, &size, "%ld+%02ld:%02ld:%02ld", d, h, m, s); 177 grecs_asprintf (&str, &size, "%ld+%02ld:%02ld:%02ld", d, h, m, s);
179 else if (h) 178 else if (h)
180 grecs_asprintf (&str, &size, "%02ld:%02ld:%02ld", h, m, s); 179 grecs_asprintf (&str, &size, "%02ld:%02ld:%02ld", h, m, s);
181 else 180 else
182 grecs_asprintf (&str, &size, "%02ld:%02ld", m, s); 181 grecs_asprintf (&str, &size, "%02ld:%02ld", m, s);
183 } 182 }
184 if (!str) 183 if (!str)
185 xalloc_die (); 184 grecs_alloc_die ();
186 return str; 185 return str;
187} 186}
188 187
189size_t 188size_t
190timer_get_count () 189timer_get_count ()
191{ 190{
192 return _timer_count; 191 return _timer_count;
193} 192}
194 193
195struct timer_data 194struct timer_data
196{ 195{
197 struct metadef *def; 196 struct metadef *def;
@@ -201,25 +200,25 @@ struct timer_data
201int 200int
202_fill_meta (void *sym, void *data) 201_fill_meta (void *sym, void *data)
203{ 202{
204 struct timer_slot *slot = sym; 203 struct timer_slot *slot = sym;
205 struct timer_data *tp = data; 204 struct timer_data *tp = data;
206#define CREATE_DEF(arg) \ 205#define CREATE_DEF(arg) \
207 if (tp->num) \ 206 if (tp->num) \
208 { \ 207 { \
209 char *buf = NULL; \ 208 char *buf = NULL; \
210 size_t size = 0; \ 209 size_t size = 0; \
211 grecs_asprintf (&buf, &size, "timer:%s:%s", slot->name, #arg); \ 210 grecs_asprintf (&buf, &size, "timer:%s:%s", slot->name, #arg); \
212 if (!buf) \ 211 if (!buf) \
213 xalloc_die (); \ 212 grecs_alloc_die (); \
214 tp->def->kw = buf; \ 213 tp->def->kw = buf; \
215 tp->def->storage = timer_format_time (__cat2__(timer_get_,arg) (slot)); \ 214 tp->def->storage = timer_format_time (__cat2__(timer_get_,arg) (slot)); \
216 tp->def->value = tp->def->storage; \ 215 tp->def->value = tp->def->storage; \
217 tp->def->expand = NULL; \ 216 tp->def->expand = NULL; \
218 tp->def++; \ 217 tp->def++; \
219 tp->num--; \ 218 tp->num--; \
220 } 219 }
221 220
222 CREATE_DEF(system); 221 CREATE_DEF(system);
223 CREATE_DEF(real); 222 CREATE_DEF(real);
224 CREATE_DEF(user); 223 CREATE_DEF(user);
225 224

Return to:

Send suggestions and report system problems to the System administrator.