diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2007-08-05 09:31:00 +0000 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2007-08-05 09:31:00 +0000 |
commit | 1c94534d7e7c7d5b521e373cead522b8c753ade8 (patch) | |
tree | e2c2a72469c4af3d7a547bd2b1dd543c4e7da28b /lib/bb/persist_data.py | |
parent | 2aad7b5c742dd4c1ca299390b517258e2bf6d344 (diff) | |
download | bitbake-1c94534d7e7c7d5b521e373cead522b8c753ade8.tar.gz |
persist_data: Retry if database locked, update MANIFEST
Diffstat (limited to 'lib/bb/persist_data.py')
-rw-r--r-- | lib/bb/persist_data.py | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/lib/bb/persist_data.py b/lib/bb/persist_data.py index 4df335a6a..0b88dadba 100644 --- a/lib/bb/persist_data.py +++ b/lib/bb/persist_data.py @@ -82,13 +82,25 @@ class PersistData: for row in data: rows = rows + 1 if rows: - self.connection.execute("UPDATE %s SET value=? WHERE key=?;" % domain, [value, key]) + self._execute("UPDATE %s SET value=? WHERE key=?;" % domain, [value, key]) else: - self.connection.execute("INSERT into %s(key, value) values (?, ?);" % domain, [key, value]) + self._execute("INSERT into %s(key, value) values (?, ?);" % domain, [key, value]) def delValue(self, domain, key): """ Deletes a key/value pair """ - self.connection.execute("DELETE from %s where key=?;" % domain, [key]) + self._execute("DELETE from %s where key=?;" % domain, [key]) + + def _execute(self, *query): + while True: + try: + self.connection.execute(*query) + return + except sqlite3.OperationalError, e: + if 'database is locked' in str(e): + continue + raise + + |