aboutsummaryrefslogtreecommitdiff
path: root/src/random.c
diff options
context:
space:
mode:
authordrh <drh@noemail.net>2014-10-31 14:53:32 +0000
committerdrh <drh@noemail.net>2014-10-31 14:53:32 +0000
commitca3e10ea37c4808fa84063f06b02229801b28cc0 (patch)
tree25f7d9b2ab4ff71311882bcee951b6e9ab1cb62f /src/random.c
parentbc2866ca7abc2ad7cbb6878d65cd18e584cff8f5 (diff)
parent0fb5daed34ba6f16d761b8ad02b944ec59cf5c03 (diff)
downloadsqlite-ca3e10ea37c4808fa84063f06b02229801b28cc0.tar.gz
sqlite-ca3e10ea37c4808fa84063f06b02229801b28cc0.zip
Merge recent trunk enhancements, and in particular the improvements to
the b-tree balancing logic, into the sessions branch. FossilOrigin-Name: 28b044a51215a3f64dafb2cf3b6cb7d2029580ef
Diffstat (limited to 'src/random.c')
-rw-r--r--src/random.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/random.c b/src/random.c
index b82566524..179d01bef 100644
--- a/src/random.c
+++ b/src/random.c
@@ -48,11 +48,19 @@ void sqlite3_randomness(int N, void *pBuf){
#endif
#if SQLITE_THREADSAFE
- sqlite3_mutex *mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_PRNG);
- sqlite3_mutex_enter(mutex);
+ sqlite3_mutex *mutex;
+#endif
+
+#ifndef SQLITE_OMIT_AUTOINIT
+ if( sqlite3_initialize() ) return;
#endif
- if( N<=0 ){
+#if SQLITE_THREADSAFE
+ mutex = sqlite3MutexAlloc(SQLITE_MUTEX_STATIC_PRNG);
+#endif
+
+ sqlite3_mutex_enter(mutex);
+ if( N<=0 || pBuf==0 ){
wsdPrng.isInit = 0;
sqlite3_mutex_leave(mutex);
return;