Documentation Source Text

Check-in [5345d71214]
Login

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

Overview
Comment:Clarify the sqlite3_unlock_notify() documentation.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 5345d71214791629cffe8c401c6ee7ddb35d8573
User & Date: drh 2010-06-21 19:17:18
Context
2010-06-24
11:49
Add the ability to include development snapshot amalgamations on the download page. check-in: 3a3f77dd1d user: drh tags: trunk
2010-06-21
19:17
Clarify the sqlite3_unlock_notify() documentation. check-in: 5345d71214 user: drh tags: trunk
2010-06-19
10:40
Add the oracle logo. check-in: cddbaba37a user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/unlock_notify.in.

258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
    context-pointers are marshaled into an array and a single callback
    issued. If each thread were assigned a priority, then instead of just
    signaling the threads in arbitrary order as this implementation does,
    higher priority threads could be signaled before lower priority threads.

  <p>
    If a "DROP TABLE" or "DROP INDEX" SQL command is executed, and the
    associated database connection currently has one or more actively
    executing SELECT statements, then SQLITE_LOCKED is returned. If
    [sqlite3_unlock_notify()] is called in this case, then the specified
    callback will be invoked immediately. Unless the other running SELECT 
    statements complete execution in the meantime, re-attempting the "DROP
    TABLE" or "DROP INDEX" statement will return another SQLITE_LOCKED 
    error. In the implementation of sqlite3_blocking_step() shown to the
    left, this could cause an infinite loop.

  <p>
    The caller could distinguish between this special "DROP TABLE|INDEX" 
    case and other cases by using [extended error codes]. When it is appropriate







|


|
<







258
259
260
261
262
263
264
265
266
267
268

269
270
271
272
273
274
275
    context-pointers are marshaled into an array and a single callback
    issued. If each thread were assigned a priority, then instead of just
    signaling the threads in arbitrary order as this implementation does,
    higher priority threads could be signaled before lower priority threads.

  <p>
    If a "DROP TABLE" or "DROP INDEX" SQL command is executed, and the
    same database connection currently has one or more actively
    executing SELECT statements, then SQLITE_LOCKED is returned. If
    [sqlite3_unlock_notify()] is called in this case, then the specified
    callback will be invoked immediately. Re-attempting the "DROP

    TABLE" or "DROP INDEX" statement will return another SQLITE_LOCKED 
    error. In the implementation of sqlite3_blocking_step() shown to the
    left, this could cause an infinite loop.

  <p>
    The caller could distinguish between this special "DROP TABLE|INDEX" 
    case and other cases by using [extended error codes]. When it is appropriate