See also:

https://sqlite.org/unlock_notify.html

---
The fact that there's a Highway to Hell but only a Stairway to Heaven says a 
lot about anticipated traffic volume.


>-----Original Message-----
>From: sqlite-users [mailto:sqlite-users-
>boun...@mailinglists.sqlite.org] On Behalf Of Keith Medcalf
>Sent: Tuesday, 19 March, 2019 22:29
>To: SQLite mailing list
>Subject: Re: [sqlite] Do SQLITE_LOCKED situations call the busy-
>handler ?
>
>
>SQLITE_LOCKED is an immediate return (that is, it returns
>immediately, it is not subject to automatic retries or timeouts or
>the busy/wait handler -- it is an error indication, not necessarily a
>transient condition).
>
>You may use the sqlite3_unlock_notify API (assuming that you have
>compiled your SQLite3 with the appropriate option set to enable
>unlock_notify) to get notified when the lock condition from another
>connection to the same shared cache clears.  If the conflict is
>within the same connection, then unlock_notify will not work.
>
>https://sqlite.org/c3ref/unlock_notify.html
>
>Note that if the "extended return code" is SQLITE_LOCKED_SHAREDCACHE
>then you may use the unlock_notify so that you know when the other
>connection to the same shared cache has finished with its lock so
>that you can retry the failed operation (and you may need to do this
>multiple times since there may be multiple conflicting connections to
>the same shared cache, and where this is the case, unlock_notify is
>called when one of them, chosen at random, clears).
>
>On the other hand, if the extended error code is SQLITE_LOCKED then
>you should treat it as SQLITE_MISUSE and immediately longjump to the
>HEP instruction (Halt and Execute Programmer).
>
>---
>The fact that there's a Highway to Hell but only a Stairway to Heaven
>says a lot about anticipated traffic volume.
>
>
>>-----Original Message-----
>>From: sqlite-users [mailto:sqlite-users-
>>boun...@mailinglists.sqlite.org] On Behalf Of Simon Slavin
>>Sent: Tuesday, 19 March, 2019 21:36
>>To: SQLite mailing list
>>Subject: [sqlite] Do SQLITE_LOCKED situations call the busy-handler
>?
>>
>>(For those playing along at home, SQLITE_LOCKED is a special-case
>>version of SQLITE_BUSY.  You get it only when the competing access
>>attempts come from the same connection (multi-tasking) or different
>>connections sharing the same cache.)
>>
>>Suppose I'm in a situation where I would get SQLITE_LOCKED.  Does
>>SQLite attempt to resolve the problem using whatever busy-handler
>>I've set up before returning that result ?
>>
>>The documentation here
>>
>><https://sqlite.org/c3ref/busy_timeout.html>
>>
>>seems to say otherwise but I'd like to be sure.
>>
>>Simon.
>>_______________________________________________
>>sqlite-users mailing list
>>sqlite-users@mailinglists.sqlite.org
>>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
>
>
>_______________________________________________
>sqlite-users mailing list
>sqlite-users@mailinglists.sqlite.org
>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users



_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to