On Thu, Sep 4, 2014 at 9:59 AM, Neo Anderson <neo_in_mat...@msn.com> wrote:

> I'm building a custom library wrapper for Cocoa. I want to handle database
> threading issue myself.
>
> From http://sqlite.org/compile.html#threadsafe:
>
> [quote]
> When compiled with SQLITE_THREADSAFE=2, SQLite can be used in a
> multithreaded program so long as no two threads attempt to use the
> same database connection (or any prepared statements derived from that
> database connection) at the same time.
> [/quote]
>
> I have two questions:
>
> 1. Does SQLITE_THREADSAFE only and solely affects struct sqlite3* and
> sqlite3_stmt* related API calls?
>

The difference between SQLITE_THREADSAFE=1 and SQLITE_THREADSAFE=2 is only
for sqlite3 and sqlite3_stmt related API calls.  But SQLITE_THREADSAFE=0
affects *all* APIs.



> 2. Are sqlite3_config(SQLITE_CONFIG_MULTITHREAD) and SQLITE_OPEN_NOMUTEX
> does the same thing as SQLITE_THREADSAFE=2 define?
>

Yes, as long as you do not compile with SQLITE_THREADSAFE=0.  When you
compilewith SQLITE_THREADSAFE=0, all mutex logic is omitting from the
build, and so you can never, ever, safely use the resulting library in a
multi-threaded program, regardless of how you open your connections.


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



-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to