From 00fa6d81da41fcde5c0cf50e2da32f92dfa7d653 Mon Sep 17 00:00:00 2001 From: mistachkin Date: Wed, 15 Feb 2017 00:45:53 +0000 Subject: [PATCH] Make fine time granularity work on POSIX. FossilOrigin-Name: 79057716d9ab9e05acdc1f204940ddd540a8f2ef --- manifest | 14 +++++++------- manifest.uuid | 2 +- src/mutex.c | 2 +- src/sqliteInt.h | 17 +++++++++++------ 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/manifest b/manifest index 8e9c0784db..5414a3ebb2 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Compilation\sfix\sfor\sPOSIX. -D 2017-02-15T00:02:02.950 +C Make\sfine\stime\sgranularity\swork\son\sPOSIX. +D 2017-02-15T00:45:53.416 F Makefile.in edb6bcdd37748d2b1c3422ff727c748df7ffe918 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434 F Makefile.msc 067a6766f800cc8d72845ab61f8de4ffe8f3fc99 @@ -368,7 +368,7 @@ F src/mem3.c 8768ac94694f31ffaf8b4d0ea5dc08af7010a35a F src/mem5.c 9bf955937b07f8c32541c8a9991f33ce3173d944 F src/memjournal.c 95752936c11dc6995672d1dd783cd633eea0cc95 F src/msvc.h 4942752b6a253116baaa8de75256c51a459a5e81 -F src/mutex.c 64604d2b9754f3698059e42316e9114823878793 +F src/mutex.c 3496ef443632d6cb7ae717a90b708de6d22ab267 F src/mutex.h 779d588e3b7756ec3ecf7d78cde1d84aba414f85 F src/mutex_noop.c 6a0ac0bd696bbc600ed94302ae10a4337791b9d0 F src/mutex_unix.c 68ced9b5a25dda67346b45b0e0ee303e98f2f98f @@ -399,7 +399,7 @@ F src/shell.c a661e7ccd202b16cb5321999354699e5ee018fb2 F src/sqlite.h.in 751ff125eb159c8f92c182b8df980a5e4f50e966 F src/sqlite3.rc 5121c9e10c3964d5755191c80dd1180c122fc3a8 F src/sqlite3ext.h 8648034aa702469afb553231677306cc6492a1ae -F src/sqliteInt.h 62ec0dc535758f5624d19da6ef734cb4cd24cb01 +F src/sqliteInt.h 09592c9e266f43bf55d63e5e7aa52e971d6f688c F src/sqliteLimit.h c0373387c287c8d0932510b5547ecde31b5da247 F src/status.c a9e66593dfb28a9e746cba7153f84d49c1ddc4b1 F src/table.c b46ad567748f24a326d9de40e5b9659f96ffff34 @@ -1555,7 +1555,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 804817549cfecbe5e1c4cea605d54cb4164f9bb6 -R 4773f670afc6566c386c1e0d5763b2af +P 9964ad245f66cd04cb41338180b65923ef093094 +R 745137cb2b2946f80c1b72d6e4fdda27 U mistachkin -Z 33ca2f157e3872dfd70ee3a818230e82 +Z b8672b281346122740f82871702dad12 diff --git a/manifest.uuid b/manifest.uuid index 1b8e9ea861..0d96885dce 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -9964ad245f66cd04cb41338180b65923ef093094 \ No newline at end of file +79057716d9ab9e05acdc1f204940ddd540a8f2ef \ No newline at end of file diff --git a/src/mutex.c b/src/mutex.c index 6b63c8c616..47fc4157a8 100644 --- a/src/mutex.c +++ b/src/mutex.c @@ -92,7 +92,7 @@ int sqlite3MutexEnd(void){ /* Return a time value for use by the mutex subsystem. */ i64 sqlite3MutexTimeOfDay(void){ #ifdef SQLITE_GET_MUTEX_TIME - return SQLITE_GET_MUTEX_TIME(); + SQLITE_GET_MUTEX_TIME; #else return 0; #endif diff --git a/src/sqliteInt.h b/src/sqliteInt.h index ce68f5fae7..3217cdfed2 100644 --- a/src/sqliteInt.h +++ b/src/sqliteInt.h @@ -3541,16 +3541,21 @@ const sqlite3_mem_methods *sqlite3MemGetMemsys3(void); void sqlite3MutexTimeAlert(sqlite3_mutex *, i64); /* -** This macro returns a 64-bit integer time value, in milliseconds, -** or zero if that information is not available. +** This macro contains code that returns a 64-bit integer time value, +** in milliseconds, or zero if that information is not available. */ # ifndef SQLITE_GET_MUTEX_TIME # if SQLITE_OS_UNIX -# define SQLITE_GET_MUTEX_TIME() (((i64)time(0))*1000) +# define SQLITE_GET_MUTEX_TIME { \ + struct timeval sNow; (void)gettimeofday(&sNow, 0); \ + return 1000*(i64)sNow.tv_sec + sNow.tv_usec/1000; \ + } # elif SQLITE_OS_WIN -# define SQLITE_GET_MUTEX_TIME() ((i64)GetTickCount()) +# define SQLITE_GET_MUTEX_TIME { \ + return (i64)GetTickCount(); \ + } # else -# define SQLITE_GET_MUTEX_TIME() (0) +# define SQLITE_GET_MUTEX_TIME (0) # endif # endif @@ -3590,7 +3595,7 @@ const sqlite3_mem_methods *sqlite3MemGetMemsys3(void); #else # define sqlite3MutexTimeOfDay() (0) # define sqlite3MutexTimeAlert(X,Y) -# define SQLITE_GET_MUTEX_TIME() (0) +# define SQLITE_GET_MUTEX_TIME # define SQLITE_GET_MUTEX_ID(p) (-1) # define SQLITE_GET_THREAD_ID() ((void *)0) #endif -- 2.47.2