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;