diff --git a/lbrynet/lbryfilemanager/EncryptedFileDownloader.py b/lbrynet/lbryfilemanager/EncryptedFileDownloader.py index e2a1a4bc5..b091022e4 100644 --- a/lbrynet/lbryfilemanager/EncryptedFileDownloader.py +++ b/lbrynet/lbryfilemanager/EncryptedFileDownloader.py @@ -42,7 +42,11 @@ class ManagedEncryptedFileDownloader(EncryptedFileSaver): self.claim_id = None self.rowid = rowid self.lbry_file_manager = lbry_file_manager - self.saving_status = False + self._saving_status = False + + @property + def saving_status(self): + return self._saving_status def restore(self): d = self.stream_info_manager._get_sd_blob_hashes_for_stream(self.stream_hash) @@ -96,18 +100,15 @@ class ManagedEncryptedFileDownloader(EncryptedFileSaver): reflector_server = random.choice(conf.settings.reflector_servers) return reupload.check_and_restore_availability(self, reflector_server) + @defer.inlineCallbacks def stop(self, err=None, change_status=True): - - def set_saving_status_done(): - self.saving_status = False - + log.debug('Stopping download for %s', self.sd_hash) # EncryptedFileSaver deletes metadata when it's stopped. We don't want that here. - d = EncryptedFileDownloader.stop(self, err=err) + yield EncryptedFileDownloader.stop(self, err=err) if change_status is True: - self.saving_status = True - d.addCallback(lambda _: self._save_status()) - d.addCallback(lambda _: set_saving_status_done()) - return d + self._saving_status = True + status = yield self._save_status() + self._saving_status = False def status(self): def find_completed_blobhashes(blobs):