SQLite

Check-in [bb18f57852]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:The iInUseDB and iInUseMM variables do not need to be volatile.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | branch-3.5.9
Files: files | file ages | folders
SHA1: bb18f5785283e1067338b6b85098e8f2ff3b093a
User & Date: drh 2010-01-30 23:08:24.000
Context
2010-01-30
23:08
The iInUseDB and iInUseMM variables do not need to be volatile. (Leaf check-in: bb18f57852 user: drh tags: branch-3.5.9)
22:28
Always hold the MEM2 mutex when initially marking a pager as in use by its database connection. (check-in: 622c17177a user: drh tags: branch-3.5.9)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/pager.c.
397
398
399
400
401
402
403
404
405

406
407
408
409
410
411
412
  void *pCodecArg;            /* First argument to xCodec() */
#endif
  int nHash;                  /* Size of the pager hash table */
  PgHdr **aHash;              /* Hash table to map page number to PgHdr */
#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
  Pager *pNext;               /* Doubly linked list of pagers on which */
  Pager *pPrev;               /* sqlite3_release_memory() will work */
  volatile int iInUseMM;      /* Non-zero if unavailable to MM */
  volatile int iInUseDB;      /* Non-zero if in sqlite3_release_memory() */

  u8 onPagerList;             /* True if part of the sqlite3PagerList */
#endif
  char *pTmpSpace;            /* Pager.pageSize bytes of space for tmp use */
  char dbFileVers[16];        /* Changes whenever database file changes */
};

/*







<
|
>







397
398
399
400
401
402
403

404
405
406
407
408
409
410
411
412
  void *pCodecArg;            /* First argument to xCodec() */
#endif
  int nHash;                  /* Size of the pager hash table */
  PgHdr **aHash;              /* Hash table to map page number to PgHdr */
#ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
  Pager *pNext;               /* Doubly linked list of pagers on which */
  Pager *pPrev;               /* sqlite3_release_memory() will work */

  int iInUseDB;               /* Non-zero if in sqlite3_release_memory() */
  u8 iInUseMM;                /* Non-zero if unavailable to MM */
  u8 onPagerList;             /* True if part of the sqlite3PagerList */
#endif
  char *pTmpSpace;            /* Pager.pageSize bytes of space for tmp use */
  char dbFileVers[16];        /* Changes whenever database file changes */
};

/*