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 | af77227bcd6a492dbe4d13565701c4a30dd2c2db (patch) | |
tree | f0f1973411bffca9e7b7bef2ecb1737e1e0626db | |
parent | d0d02c18bef23a2ad4c8873e9b6906b60ad324b1 (diff) | |
download | bitbake-af77227bcd6a492dbe4d13565701c4a30dd2c2db.tar.gz |
persist_data: Retry if database locked, update MANIFEST
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | lib/bb/persist_data.py | 18 |
2 files changed, 16 insertions, 3 deletions
@@ -30,6 +30,7 @@ lib/bb/parse/__init__.py lib/bb/parse/parse_py/__init__.py lib/bb/parse/parse_py/BBHandler.py lib/bb/parse/parse_py/ConfHandler.py +lib/bb/persist_data.py lib/bb/providers.py lib/bb/runqueue.py lib/bb/shell.py 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 + + |