Dan Kennedy <danielk1977-re5jqeeqqe8avxtiumw...@public.gmane.org> writes:
> On Aug 17, 2010, at 1:48 AM, Nikolaus Rath wrote:
>
>> Hello,
>>
>> The script below fails with
>>
>> Deadlock detected when executing 'DELETE FROM foo WHERE id=2'
>>
>> What I think should be happening instead is this:
>>
>> - When executing statement 1, the main thread obtains a SHARED lock.
>>
>> - When executing statement 2, the main thread briefly obtains an
>>   EXCLUSIVE lock. After statement 2 is executed, the EXCLUSIVE lock is
>>   released and the main thread continues to hold the SHARED lock  
>> (since
>>   statement 1 is still active)
>>
>> - Thread 2 wants to get an EXCLUSIVE lock but it can't. So the busy
>>   handlers waits for the main thread to release it's lock.
>>
>> - The main thread once again briefly obtains an EXCLUSIVE lock to
>>   execute statement 4. After that it releases all locks.
>>
>> - Now thread 2 can execute statement 3.
>>
>>
>> Obviously, in practice something else is happening. Can someone  
>> explain
>> what and why this is?
>
> What does sqlite3_version() say?

3.7.0.1



Best,

   -Nikolaus

-- 
 »Time flies like an arrow, fruit flies like a Banana.«

  PGP fingerprint: 5B93 61F8 4EA2 E279 ABF6  02CF A9AD B7F8 AE4E 425C
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to