The ROme OpTimistic Simulator
2.0.0
A General-Purpose Multithreaded Parallel/Distributed Simulation Platform
Main Page
Data Structures
Files
File List
Globals
timer.h
Go to the documentation of this file.
1
31
#pragma once
32
33
#include <time.h>
34
#include <sys/time.h>
35
36
typedef
struct
timeval timer;
37
38
#define timer_start(timer_name) gettimeofday(&timer_name, NULL)
39
40
#define timer_restart(timer_name) timer_start(timer_name)
41
42
#define timer_value_seconds(timer_name) ((double)timer_value_milli(timer_name) / 1000.0)
43
44
#define timer_value_milli(timer_name) ({\
45
struct timeval __rs_tmp_timer;\
46
int __rs_timedif;\
47
gettimeofday(&__rs_tmp_timer, NULL);\
48
__rs_timedif = __rs_tmp_timer.tv_sec * 1000 + __rs_tmp_timer.tv_usec / 1000;\
49
__rs_timedif -= timer_name.tv_sec * 1000 + timer_name.tv_usec / 1000;\
50
__rs_timedif;\
51
})
52
53
#define timer_value_micro(timer_name) ({\
54
struct timeval __rs_tmp_timer;\
55
int __rs_timedif;\
56
gettimeofday(&__rs_tmp_timer, NULL);\
57
__rs_timedif = __rs_tmp_timer.tv_sec * 1000000 + __rs_tmp_timer.tv_usec;\
58
__rs_timedif -= timer_name.tv_sec * 1000000 + timer_name.tv_usec;\
59
__rs_timedif;\
60
})
61
62
#define TIMER_BUFFER_LEN 64
63
#define timer_tostring(timer_name, string) do {\
65
time_t __nowtime;\
66
struct tm *__nowtm;\
67
__nowtime = (timer_name).tv_sec;\
68
__nowtm = localtime(&__nowtime);\
69
strftime((string), sizeof (string), "%Y-%m-%d %H:%M:%S", __nowtm);\
70
} while(0)
src
core
timer.h
Generated by
1.8.11