diff options
author | Aleksey Lim <alsroot@member.fsf.org> | 2010-07-14 11:53:27 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@member.fsf.org> | 2010-07-14 11:53:27 (GMT) |
commit | 3644facf0a296c7d55b44394942b866529361248 (patch) | |
tree | e01fa37d1bc1e29594528fd19f70d05e613b907d /src/carquinyol/datastore.py | |
parent | 989914ce5d547c78dab8f204d7bf8b81bf5b6f0a (diff) |
Invert index_updated logic #2095
Diffstat (limited to 'src/carquinyol/datastore.py')
-rw-r--r-- | src/carquinyol/datastore.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/carquinyol/datastore.py b/src/carquinyol/datastore.py index a556869..82a6207 100644 --- a/src/carquinyol/datastore.py +++ b/src/carquinyol/datastore.py @@ -62,6 +62,7 @@ class DataStore(dbus.service.Object): self._file_store = FileStore() self._optimizer = Optimizer(self._file_store, self._metadata_store) self._index_store = IndexStore() + self._index_updating = False if migrated: self._rebuild_index() @@ -74,7 +75,7 @@ class DataStore(dbus.service.Object): self._rebuild_index() return - if not layoutmanager.get_instance().index_updated: + if not self._index_store.index_updated: logging.debug('Index is not up-to-date, will update') self._update_index() @@ -97,7 +98,6 @@ class DataStore(dbus.service.Object): def _rebuild_index(self): """Remove and recreate index.""" - layoutmanager.get_instance().index_updated = False self._index_store.close_index() self._index_store.remove_index() self._index_store.open_index() @@ -108,6 +108,7 @@ class DataStore(dbus.service.Object): uids = layoutmanager.get_instance().find_all() logging.debug('Going to update the index with object_ids %r', uids) + self._index_updating = True gobject.idle_add(lambda: self.__update_index_cb(uids), priority=gobject.PRIORITY_LOW) @@ -126,8 +127,9 @@ class DataStore(dbus.service.Object): logging.exception('Error processing %r', uid) if not uids: + self._index_store.flush() + self._index_updating = False logging.debug('Finished updating index.') - layoutmanager.get_instance().index_updated = True return False else: return True @@ -216,14 +218,14 @@ class DataStore(dbus.service.Object): logging.debug('datastore.find %r', query) t = time.time() - if layoutmanager.get_instance().index_updated: + if not self._index_updating: try: uids, count = self._index_store.find(query) except Exception: logging.exception('Failed to query index, will rebuild') self._rebuild_index() - if not layoutmanager.get_instance().index_updated: + if self._index_updating: logging.warning('Index updating, returning all entries') return self._find_all(query, properties) @@ -290,7 +292,7 @@ class DataStore(dbus.service.Object): raise ValueError('Only ''activity'' is a supported property name') if query: raise ValueError('The query parameter is not supported') - if layoutmanager.get_instance().index_updated: + if not self._index_updating: return self._index_store.get_activities() else: logging.warning('Index updating, returning an empty list') |