pcache1 35459 sqlite3/libsqlite/sqlite3.c if( pcache1.isInit ){ pcache1 35462 sqlite3/libsqlite/sqlite3.c pcache1.szSlot = sz; pcache1 35463 sqlite3/libsqlite/sqlite3.c pcache1.nSlot = pcache1.nFreeSlot = n; pcache1 35464 sqlite3/libsqlite/sqlite3.c pcache1.nReserve = n>90 ? 10 : (n/10 + 1); pcache1 35465 sqlite3/libsqlite/sqlite3.c pcache1.pStart = pBuf; pcache1 35466 sqlite3/libsqlite/sqlite3.c pcache1.pFree = 0; pcache1 35467 sqlite3/libsqlite/sqlite3.c pcache1.bUnderPressure = 0; pcache1 35470 sqlite3/libsqlite/sqlite3.c p->pNext = pcache1.pFree; pcache1 35471 sqlite3/libsqlite/sqlite3.c pcache1.pFree = p; pcache1 35474 sqlite3/libsqlite/sqlite3.c pcache1.pEnd = pBuf; pcache1 35489 sqlite3/libsqlite/sqlite3.c assert( sqlite3_mutex_notheld(pcache1.grp.mutex) ); pcache1 35491 sqlite3/libsqlite/sqlite3.c if( nByte<=pcache1.szSlot ){ pcache1 35492 sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pcache1.mutex); pcache1 35493 sqlite3/libsqlite/sqlite3.c p = (PgHdr1 *)pcache1.pFree; pcache1 35495 sqlite3/libsqlite/sqlite3.c pcache1.pFree = pcache1.pFree->pNext; pcache1 35496 sqlite3/libsqlite/sqlite3.c pcache1.nFreeSlot--; pcache1 35497 sqlite3/libsqlite/sqlite3.c pcache1.bUnderPressure = pcache1.nFreeSlot<pcache1.nReserve; pcache1 35498 sqlite3/libsqlite/sqlite3.c assert( pcache1.nFreeSlot>=0 ); pcache1 35501 sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pcache1.mutex); pcache1 35510 sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pcache1.mutex); pcache1 35512 sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pcache1.mutex); pcache1 35524 sqlite3/libsqlite/sqlite3.c if( p>=pcache1.pStart && p<pcache1.pEnd ){ pcache1 35526 sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pcache1.mutex); pcache1 35529 sqlite3/libsqlite/sqlite3.c pSlot->pNext = pcache1.pFree; pcache1 35530 sqlite3/libsqlite/sqlite3.c pcache1.pFree = pSlot; pcache1 35531 sqlite3/libsqlite/sqlite3.c pcache1.nFreeSlot++; pcache1 35532 sqlite3/libsqlite/sqlite3.c pcache1.bUnderPressure = pcache1.nFreeSlot<pcache1.nReserve; pcache1 35533 sqlite3/libsqlite/sqlite3.c assert( pcache1.nFreeSlot<=pcache1.nSlot ); pcache1 35534 sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pcache1.mutex); pcache1 35540 sqlite3/libsqlite/sqlite3.c sqlite3_mutex_enter(pcache1.mutex); pcache1 35542 sqlite3/libsqlite/sqlite3.c sqlite3_mutex_leave(pcache1.mutex); pcache1 35552 sqlite3/libsqlite/sqlite3.c if( p>=pcache1.pStart && p<pcache1.pEnd ){ pcache1 35553 sqlite3/libsqlite/sqlite3.c return pcache1.szSlot; pcache1 35634 sqlite3/libsqlite/sqlite3.c if( pcache1.nSlot && pCache->szPage<=pcache1.szSlot ){ pcache1 35635 sqlite3/libsqlite/sqlite3.c return pcache1.bUnderPressure; pcache1 35798 sqlite3/libsqlite/sqlite3.c assert( pcache1.isInit==0 ); pcache1 35799 sqlite3/libsqlite/sqlite3.c memset(&pcache1, 0, sizeof(pcache1)); pcache1 35801 sqlite3/libsqlite/sqlite3.c pcache1.grp.mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_STATIC_LRU); pcache1 35802 sqlite3/libsqlite/sqlite3.c pcache1.mutex = sqlite3_mutex_alloc(SQLITE_MUTEX_STATIC_PMEM); pcache1 35804 sqlite3/libsqlite/sqlite3.c pcache1.grp.mxPinned = 10; pcache1 35805 sqlite3/libsqlite/sqlite3.c pcache1.isInit = 1; pcache1 35816 sqlite3/libsqlite/sqlite3.c assert( pcache1.isInit!=0 ); pcache1 35817 sqlite3/libsqlite/sqlite3.c memset(&pcache1, 0, sizeof(pcache1)); pcache1 35856 sqlite3/libsqlite/sqlite3.c pGroup = &pcache1.grp; pcache1 36206 sqlite3/libsqlite/sqlite3.c assert( sqlite3_mutex_notheld(pcache1.grp.mutex) ); pcache1 36207 sqlite3/libsqlite/sqlite3.c assert( sqlite3_mutex_notheld(pcache1.mutex) ); pcache1 36208 sqlite3/libsqlite/sqlite3.c if( pcache1.pStart==0 ){ pcache1 36210 sqlite3/libsqlite/sqlite3.c pcache1EnterMutex(&pcache1.grp); pcache1 36211 sqlite3/libsqlite/sqlite3.c while( (nReq<0 || nFree<nReq) && ((p=pcache1.grp.pLruTail)!=0) ){ pcache1 36217 sqlite3/libsqlite/sqlite3.c pcache1LeaveMutex(&pcache1.grp); pcache1 36236 sqlite3/libsqlite/sqlite3.c for(p=pcache1.grp.pLruHead; p; p=p->pLruNext){ pcache1 36239 sqlite3/libsqlite/sqlite3.c *pnCurrent = pcache1.grp.nCurrentPage; pcache1 36240 sqlite3/libsqlite/sqlite3.c *pnMax = pcache1.grp.nMaxPage; pcache1 36241 sqlite3/libsqlite/sqlite3.c *pnMin = pcache1.grp.nMinPage;