diff options
author | drh <drh@noemail.net> | 2001-09-23 19:46:51 +0000 |
---|---|---|
committer | drh <drh@noemail.net> | 2001-09-23 19:46:51 +0000 |
commit | 90bfcdace37be8d7029c42abb778988b2cfcc439 (patch) | |
tree | 021a8c424c5bed44d33330945c01e53a957712c1 /src/os.c | |
parent | ecdc7530dda7a793c96df4010313792de4a6390c (diff) | |
download | sqlite-90bfcdace37be8d7029c42abb778988b2cfcc439.tar.gz sqlite-90bfcdace37be8d7029c42abb778988b2cfcc439.zip |
Additional test cases with locking fixes. Also, make the code thread-safe. (CVS 262)
FossilOrigin-Name: bd7d6a64afa03cc64f6537f828d6c94975bf5f02
Diffstat (limited to 'src/os.c')
-rw-r--r-- | src/os.c | 18 |
1 files changed, 11 insertions, 7 deletions
@@ -246,7 +246,7 @@ int sqliteOsTempFileName(char *zBuf){ sprintf(zBuf, "%s/sqlite_", zDir); j = strlen(zBuf); for(i=0; i<15; i++){ - int n = sqliteRandomByte() % sizeof(zChars); + int n = rand() % sizeof(zChars); zBuf[j++] = zChars[n]; } zBuf[j] = 0; @@ -264,7 +264,7 @@ int sqliteOsTempFileName(char *zBuf){ sprintf(zBuf, "%s/sqlite_", zTempPath); j = strlen(zBuf); for(i=0; i<15; i++){ - int n = sqliteRandomByte() % sizeof(zChars); + int n = rand() % sizeof(zChars); zBuf[j++] = zChars[n]; } zBuf[j] = 0; @@ -429,19 +429,23 @@ int sqliteOsUnlock(OsFile id){ ** Get information to seed the random number generator. */ int sqliteOsRandomSeed(char *zBuf){ + static int once = 1; #if OS_UNIX int pid; time((time_t*)zBuf); - zBuf += sizeof(time_t); pid = getpid(); - memcpy(zBuf, &pid, sizeof(pid)); - zBuf += pid; - return SQLITE_OK; + memcpy(&zBuf[sizeof(time_t)], &pid, sizeof(pid)); #endif #if OS_WIN GetSystemTime((LPSYSTEMTIME)zBuf); +#endif + if( once ){ + int seed; + memcpy(&seed, zBuf, sizeof(seed)); + srand(seed); + once = 0; + } return SQLITE_OK; -#endif } /* |