Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Previous commit ((6401)) did not quite fix the problem. This should work better. (CVS 6402) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
2e7d3cc9f04de1fe7ef95cd5736dbc40 |
User & Date: | drh 2009-03-28 23:47:11.000 |
Context
2009-03-29
| ||
00:13 | Improvements to cost estimation for evaluating the IN operator. Ticket #3757. (CVS 6403) (check-in: 0c438e813c user: drh tags: trunk) | |
2009-03-28
| ||
23:47 | Previous commit ((6401)) did not quite fix the problem. This should work better. (CVS 6402) (check-in: 2e7d3cc9f0 user: drh tags: trunk) | |
23:23 | In the unix-backend, when simulating an I/O error on an unlock operation, still mark the connection as unlocked to avoid a future assert(). (CVS 6401) (check-in: fb35cff855 user: drh tags: trunk) | |
Changes
Changes to src/os_unix.c.
︙ | ︙ | |||
39 40 41 42 43 44 45 | ** * Definitions of sqlite3_io_methods objects for all locking ** methods plus "finder" functions for each locking method. ** * sqlite3_vfs method implementations. ** * Locking primitives for the proxy uber-locking-method. (MacOSX only) ** * Definitions of sqlite3_vfs objects for all locking methods ** plus implementations of sqlite3_os_init() and sqlite3_os_end(). ** | | | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | ** * Definitions of sqlite3_io_methods objects for all locking ** methods plus "finder" functions for each locking method. ** * sqlite3_vfs method implementations. ** * Locking primitives for the proxy uber-locking-method. (MacOSX only) ** * Definitions of sqlite3_vfs objects for all locking methods ** plus implementations of sqlite3_os_init() and sqlite3_os_end(). ** ** $Id: os_unix.c,v 1.247 2009/03/28 23:47:11 drh Exp $ */ #include "sqliteInt.h" #if SQLITE_OS_UNIX /* This file is used on unix only */ /* ** There are various methods for file locking used for concurrency ** control: |
︙ | ︙ | |||
1477 1478 1479 1480 1481 1482 1483 | }else{ int tErrno = errno; rc = sqliteErrorFromPosixError(tErrno, SQLITE_IOERR_UNLOCK); if( IS_LOCK_ERROR(rc) ){ pFile->lastErrno = tErrno; } pLock->cnt = 1; | | > | 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 | }else{ int tErrno = errno; rc = sqliteErrorFromPosixError(tErrno, SQLITE_IOERR_UNLOCK); if( IS_LOCK_ERROR(rc) ){ pFile->lastErrno = tErrno; } pLock->cnt = 1; pLock->locktype = NO_LOCK; pFile->locktype = NO_LOCK; goto end_unlock; } } /* Decrement the count of locks against this same file. When the ** count reaches zero, close any other file descriptors whose close ** was deferred because of outstanding locks. |
︙ | ︙ |