The documentation isn't very clear on what the intent of an xUnlock( SQLITE_LOCK_NONE ) is intended to do. Is it unlock everything? Is it the same as remove a shared lock?
The first few operations are xLock( SQLITE_LOCK_SHARED ) followed by xUnlock(SQLITE_LOCK_NONE)... sqlite.h.in https://github.com/mackyle/sqlite/blob/master/src/sqlite.h.in#L627 where the constants are defined... says 'one of these are used...' and describing locking levels... https://github.com/mackyle/sqlite/blob/master/src/sqlite.h.in#L708-L720 https://www.sqlite.org/c3ref/io_methods.html xLock() increases the lock. xUnlock() decreases the lock. The xCheckReservedLock() method checks whether any database connection, either in this process or in some other process, is holding a RESERVED, PENDING, or EXCLUSIVE lock on the file. It returns true if such a lock exists and false otherwise. https://www.sqlite.org/lockingv3.html has description of what locking states are intended to be... there's 'UNLOCKED' but not LOCK_NONE I did find another page that had lock state transitions, and information about when the busy callback would be called... but that also didn't say anything about the transition to unlock states... There was a note around the .C code in the pager unlocking using LOCK_NONE, but I cna't find that, it just says, see note above... and that didn't really say what the intent was. I searched the nabble mailing list archive for 'SQLITE_LOCK_NONE' and found 0 hits. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users