From 4ec0df9b9b706b4533d9188a2a7433b1c2a314a2 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Fri, 21 Sep 2007 14:42:50 +0000 Subject: [PATCH] potential fix for amb818 - sqlite busy waits for locks now --HG-- extra : convert_revision : svn%3A39bc706e-5318-0410-9160-8a85361fbb7c/trunk%401453 --- extensions/sqlite/driver/SqDriver.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/extensions/sqlite/driver/SqDriver.cpp b/extensions/sqlite/driver/SqDriver.cpp index 7e7dfa0a..d3fe1b63 100644 --- a/extensions/sqlite/driver/SqDriver.cpp +++ b/extensions/sqlite/driver/SqDriver.cpp @@ -53,6 +53,16 @@ unsigned int strncopy(char *dest, const char *src, size_t count) return (dest - start); } +int busy_handler(void *unused1, int unused2) +{ +#if defined PLATFORM_WINDOWS + Sleep(100); +#elif defined PLATFORM_LINUX + usleep(100000); +#endif + return 1; +} + SqDriver::SqDriver() { m_Handle = BAD_HANDLE; @@ -223,6 +233,8 @@ IDatabase *SqDriver::Connect(const DatabaseInfo *info, bool persistent, char *er return NULL; } + sqlite3_busy_handler(sql, busy_handler, NULL); + SqDatabase *pdb = new SqDatabase(sql, persistent); if (persistent)