1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-08 14:02:16 +03:00

More changes for 2.0.7. (CVS 293)

FossilOrigin-Name: f8328a5f11801c5124f9a8dace22df3c1cfb2191
This commit is contained in:
drh
2001-10-22 02:58:08 +00:00
parent 01a346616f
commit 6d4abfbee5
25 changed files with 567 additions and 223 deletions

View File

@@ -18,7 +18,7 @@
** file simultaneously, or one process from reading the database while
** another is writing.
**
** @(#) $Id: pager.c,v 1.28 2001/10/18 12:34:47 drh Exp $
** @(#) $Id: pager.c,v 1.29 2001/10/22 02:58:10 drh Exp $
*/
#include "sqliteInt.h"
#include "pager.h"
@@ -933,22 +933,28 @@ int sqlitepager_write(void *pData){
assert( pPager->aInJournal==0 );
pPager->aInJournal = sqliteMalloc( pPager->dbSize/8 + 1 );
if( pPager->aInJournal==0 ){
sqliteFree(pPager->aInJournal);
return SQLITE_NOMEM;
}
rc = sqliteOsOpenExclusive(pPager->zJournal, &pPager->jfd);
if( rc!=SQLITE_OK ){
sqliteFree(pPager->aInJournal);
return SQLITE_CANTOPEN;
}
pPager->journalOpen = 1;
pPager->needSync = 0;
if( sqliteOsLock(pPager->jfd, 1)!=SQLITE_OK ){
sqliteFree(pPager->aInJournal);
sqliteOsClose(pPager->jfd);
sqliteOsDelete(pPager->zJournal);
pPager->journalOpen = 0;
return SQLITE_BUSY;
}
sqliteOsUnlock(pPager->fd);
if( sqliteOsLock(pPager->fd, 1)!=SQLITE_OK ){
sqliteFree(pPager->aInJournal);
sqliteOsClose(pPager->jfd);
sqliteOsDelete(pPager->zJournal);
pPager->journalOpen = 0;
pPager->state = SQLITE_UNLOCK;
pPager->errMask |= PAGER_ERR_LOCK;