diff options
| author | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-08-04 20:42:02 +0000 |
|---|---|---|
| committer | Diego Nehab <diego@tecgraf.puc-rio.br> | 2004-08-04 20:42:02 +0000 |
| commit | e27fa00e1c07739945dd4369d9df0e2415ecb9ad (patch) | |
| tree | 8bf5b76f6b9d91cb0431f3053ad08c69ede2819e | |
| parent | 0e77ad987f64ec0044af0b3dd1d30f289c9c3419 (diff) | |
| download | luasocket-e27fa00e1c07739945dd4369d9df0e2415ecb9ad.tar.gz luasocket-e27fa00e1c07739945dd4369d9df0e2415ecb9ad.tar.bz2 luasocket-e27fa00e1c07739945dd4369d9df0e2415ecb9ad.zip | |
Gettime returns time in the Unix Epoch time both on windows and unix.
| -rw-r--r-- | src/timeout.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/timeout.c b/src/timeout.c index 66b98dd..152af29 100644 --- a/src/timeout.c +++ b/src/timeout.c | |||
| @@ -118,20 +118,25 @@ p_tm tm_markstart(p_tm tm) { | |||
| 118 | } | 118 | } |
| 119 | 119 | ||
| 120 | /*-------------------------------------------------------------------------*\ | 120 | /*-------------------------------------------------------------------------*\ |
| 121 | * Gets time in ms, relative to system startup. | 121 | * Gets time in s, relative to January 1, 1970 (UTC) |
| 122 | * Returns | 122 | * Returns |
| 123 | * time in ms. | 123 | * time in s. |
| 124 | \*-------------------------------------------------------------------------*/ | 124 | \*-------------------------------------------------------------------------*/ |
| 125 | #ifdef _WIN32 | 125 | #ifdef _WIN32 |
| 126 | double tm_gettime(void) { | 126 | double tm_gettime(void) { |
| 127 | FILETIME ft; | 127 | FILETIME ft; |
| 128 | double t; | ||
| 128 | GetSystemTimeAsFileTime(&ft); | 129 | GetSystemTimeAsFileTime(&ft); |
| 129 | return ft.dwLowDateTime/1.0e7 + ft.dwHighDateTime*(4294967296.0/1.0e7); | 130 | /* Windows file time (time since January 1, 1601 (UTC)) */ |
| 131 | t = ft.dwLowDateTime/1.0e7 + ft.dwHighDateTime*(4294967296.0/1.0e7); | ||
| 132 | /* convert to Unix Epoch time (time since January 1, 1970 (UTC)) */ | ||
| 133 | return (t - 11644473600.0); | ||
| 130 | } | 134 | } |
| 131 | #else | 135 | #else |
| 132 | double tm_gettime(void) { | 136 | double tm_gettime(void) { |
| 133 | struct timeval v; | 137 | struct timeval v; |
| 134 | gettimeofday(&v, (struct timezone *) NULL); | 138 | gettimeofday(&v, (struct timezone *) NULL); |
| 139 | /* Unix Epoch time (time since January 1, 1970 (UTC)) */ | ||
| 135 | return v.tv_sec + v.tv_usec/1.0e6; | 140 | return v.tv_sec + v.tv_usec/1.0e6; |
| 136 | } | 141 | } |
| 137 | #endif | 142 | #endif |
