Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Allow the SQLITE_API macro to apply to the sqlite3_win32_sleep function. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | compiler-compat |
Files: | files | file ages | folders |
SHA1: |
21266c68afb067ff40062df1e8b383df |
User & Date: | mistachkin 2012-06-18 17:15:29.347 |
Context
2012-06-21
| ||
14:05 | Merge several compiler compatibility fixes to trunk. (check-in: d3d491a546 user: mistachkin tags: trunk) | |
2012-06-18
| ||
17:15 | Allow the SQLITE_API macro to apply to the sqlite3_win32_sleep function. (Closed-Leaf check-in: 21266c68af user: mistachkin tags: compiler-compat) | |
08:00 | Fix a few compilation issues that can occur with certain compilers (e.g. GCC 2.95.3, MSVC). (check-in: f970a3de61 user: mistachkin tags: compiler-compat) | |
Changes
Changes to src/mutex_w32.c.
︙ | ︙ | |||
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | /* As winMutexInit() and winMutexEnd() are called as part ** of the sqlite3_initialize and sqlite3_shutdown() ** processing, the "interlocked" magic is probably not ** strictly necessary. */ static long winMutex_lock = 0; static int winMutexInit(void){ /* The first to increment to 1 does actual initialization */ if( InterlockedCompareExchange(&winMutex_lock, 1, 0)==0 ){ int i; for(i=0; i<ArraySize(winMutex_staticMutexes); i++){ #if SQLITE_OS_WINRT InitializeCriticalSectionEx(&winMutex_staticMutexes[i].mutex, 0, 0); #else InitializeCriticalSection(&winMutex_staticMutexes[i].mutex); #endif } winMutex_isInit = 1; }else{ /* Someone else is in the process of initing the static mutexes */ while( !winMutex_isInit ){ | > > < | 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | /* As winMutexInit() and winMutexEnd() are called as part ** of the sqlite3_initialize and sqlite3_shutdown() ** processing, the "interlocked" magic is probably not ** strictly necessary. */ static long winMutex_lock = 0; void sqlite3_win32_sleep(DWORD milliseconds); /* os_win.c */ static int winMutexInit(void){ /* The first to increment to 1 does actual initialization */ if( InterlockedCompareExchange(&winMutex_lock, 1, 0)==0 ){ int i; for(i=0; i<ArraySize(winMutex_staticMutexes); i++){ #if SQLITE_OS_WINRT InitializeCriticalSectionEx(&winMutex_staticMutexes[i].mutex, 0, 0); #else InitializeCriticalSection(&winMutex_staticMutexes[i].mutex); #endif } winMutex_isInit = 1; }else{ /* Someone else is in the process of initing the static mutexes */ while( !winMutex_isInit ){ sqlite3_win32_sleep(1); } } return SQLITE_OK; } static int winMutexEnd(void){ |
︙ | ︙ |