diff options
Diffstat (limited to 'src/timer.c')
-rw-r--r-- | src/timer.c | 5 |
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 | ||
25 | struct timer_slot | 24 | struct 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 | ||
189 | size_t | 188 | size_t |
190 | timer_get_count () | 189 | timer_get_count () |
191 | { | 190 | { |
192 | return _timer_count; | 191 | return _timer_count; |
193 | } | 192 | } |
194 | 193 | ||
195 | struct timer_data | 194 | struct timer_data |
196 | { | 195 | { |
197 | struct metadef *def; | 196 | struct metadef *def; |
@@ -201,25 +200,25 @@ struct timer_data | |||
201 | int | 200 | int |
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 | ||