Ah, crud. I kinda forgot I had a WAL checkpoint thread running. I thought I had 
disabled that a long time ago. And it was sharing a connection on a different 
thread.

Fixing that, things seem stable under GCD with SQLITE_OPEN_NOMUTEX.

I'm still not 100% sure if there's a problem sharing connections across threads 
with SQLITE_OPEN_NOMUTEX as long as I guarantee that they aren't concurrent. I 
suspect there aren't, but I'm not 100% sure. Any case where sqlite3 would be 
less than happy that pthread_self wasn't always the same?

Note that this isn't me redoing what sqlite3 is doing: GCD provides a higher 
level abstraction that guarantees (modulo my stupidity) non-concurrency. It 
should be enough for SQLITE_OPEN_NOMUTEX while being (at least slightly) more 
concurrent than SQLITE_OPEN_FULLMUTEX.

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

Reply via email to