+ # Let other subscribe for an event when they are ready
+ def subscribe_loaded(self, callback):
+ with file_lock:
+ if self.is_loaded(allow_substates=True):
+ callback(True)
+ elif self.is_failed():
+ callback(False)
+ else:
+ self.loaded_callbacks.append(callback)
+
+ def poll_loaded(self):
+ for callback in self.loaded_callbacks:
+ callback(self.is_loaded())
+ self.loaded_callbacks = []
+