Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Clean up possible locking problem in multithreaded applications that take a malloc failure. (CVS 2611) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
545e702a23c7a6b09e10441d4137efe5 |
User & Date: | drh 2005-08-21 21:45:02.000 |
Context
2005-08-22
| ||
02:10 | Update the download page of the website to handle TEA builds and starkits. (CVS 2612) (check-in: 1fab599b6f user: drh tags: trunk) | |
2005-08-21
| ||
21:45 | Clean up possible locking problem in multithreaded applications that take a malloc failure. (CVS 2611) (check-in: 545e702a23 user: drh tags: trunk) | |
18:54 | Version 3.2.3 (CVS 2610) (check-in: f620319b44 user: drh tags: trunk) | |
Changes
Changes to src/os_unix.c.
︙ | ︙ | |||
1274 1275 1276 1277 1278 1279 1280 | /* If there are outstanding locks, do not actually close the file just ** yet because that would clear those locks. Instead, add the file ** descriptor to pOpen->aPending. It will be automatically closed when ** the last lock is cleared. */ int *aNew; struct openCnt *pOpen = id->pOpen; | < | | > | 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 | /* If there are outstanding locks, do not actually close the file just ** yet because that would clear those locks. Instead, add the file ** descriptor to pOpen->aPending. It will be automatically closed when ** the last lock is cleared. */ int *aNew; struct openCnt *pOpen = id->pOpen; aNew = sqliteRealloc( pOpen->aPending, (pOpen->nPending+1)*sizeof(int) ); if( aNew==0 ){ /* If a malloc fails, just leak the file descriptor */ }else{ pOpen->aPending = aNew; pOpen->aPending[pOpen->nPending] = id->h; pOpen->nPending++; } }else{ /* There are no outstanding locks so we can close the file immediately */ close(id->h); } releaseLockInfo(id->pLock); releaseOpenCnt(id->pOpen); |
︙ | ︙ |