chore: 添加一些TODO注释

This commit is contained in:
lanyeeee
2026-03-10 07:47:51 +08:00
parent 02d157ba70
commit 6be3289d93
3 changed files with 11 additions and 2 deletions

View File

@@ -67,7 +67,10 @@ impl DownloadChunkTask {
}
}
},
// FIXME: 直接返回chunk_index存在进度误标风险
// 上层会将这个分片标记为已下载,而分片其实是被打断的
// 应该把返回值改成 enum DownloadChunkResult { Downloaded(idx), Interrupted }
// 然后由上层处理
_ = restart_receiver.changed() => break Ok(self.chunk_index),
_ = delete_receiver.changed() => break Ok(self.chunk_index),

View File

@@ -158,7 +158,9 @@ impl DownloadManager {
tracing::error!(err_title, message);
continue;
};
// TODO: 应该先发删除新号再删文件
// 因为发信号失败会把任务重新塞回去
// 目前先删文件会导致发信号失败时出现 任务还在但文件没了的情况
if let Err(err) = self.delete_progress_file(task_id) {
let err_title = "删除下载任务失败";
let message = err.to_message();

View File

@@ -438,6 +438,10 @@ impl DownloadTask {
let updated_progress = {
let mut progress = self.progress.write();
update_fn(&mut progress);
// TODO: 这里应该返回 progress.clone()
// 专门用一个 {} 框出来就是为了避免在emit和save期间仍持有写锁
// 然而这里弄错了progress的类型
// 错把progress当成了DownloadProgress实则类型为RwLockWriteGuard
progress
};
// 发送更新事件并保存到文件