複数スレッドから同一データベースを扱う場合は,それぞれのスレッドが sqlite_open より取得された sqlite* を持つ必要がある. って http://www.sqlite.org/c_interface.html の section 5.0 に書いてありますが,うっかり同じ出自の sqlite* を使ってしまいました.すると見事なまでにエラー続出.幸い,上記サイトを昨日参照したばかりだったので注意事項を思い出すことができた(内容までは覚えていなかったけど…). で,select 系はいいとして,update や delete, insert が同時に起こるとクエリーはどちらかが止まってしまうことに気づいた(具体的なエラー名はわかりません). これを回避するために,update 等が必要になる処理は CCriticalSection で囲うことにした.もちろん,検索専用スレッド