Marcus Ilgner wrote:
>
> I'm one of the authors of the SQLite-WinRT component for Windows 8.
>

Cool, the one on CodePlex?

> 
> Regarding this release, can you tell me what configuration was used to
> compile it? 
> 

The default compilation options from the MSVC makefile were used, along
with the extra options necessary for WinRT (e.g. SQLITE_OS_WINRT,
WINAPI_FAMILY, etc).

>
> I'm asking because we wondered why the binary is about double the size
> of the one we had previously.
>

>From where?  With what compilation options?

> 
> Also, there's a strange phenomenon occurring which is probably some
> kind of race condition in the way that multi-threading is done:
> sqlite3_step() returns a generic error code 1 (for a valid statement)
> but when I proceed to call sqlite3_errmsg16(), the error message for
> error 6 (table locked) is returned.
> 

That is not necessarily a race condition.  It could be the sqlite3_step
is returning SQLITE_ERROR and the last error code stored for the database
could be something else, like SQLITE_LOCKED.  Also, the SQLite DLLs for
WinRT are compiled with SQLITE_THREADSAFE=1.

> 
> Generally speaking, is a locked table something that should be handled
> or do you think there may be another problem at play here? I see that
> SQLite does a lot of work to support seamless multi-threading and since
> the one application is the only process working on the database, I
> suspect that the problem may lie elsewhere.
> 

How many processes and/or threads are attempting to access the database
simultaneously?  There can be only one writer at a time.  Also, unless
WAL is used, a writer may block a reader.

--
Joe Mistachkin

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

Reply via email to