mirror of
https://github.com/Bluemangoo/sekai-unpacker.git
synced 2026-05-06 20:44:47 +08:00
fix task clear
This commit is contained in:
parent
46cf5cdf4b
commit
cdf617b5c3
@ -103,6 +103,23 @@ impl<T> SharedQueue<T> {
|
||||
})
|
||||
}
|
||||
|
||||
pub fn clear(&self) {
|
||||
let mut queue = self.inner.data.lock().unwrap();
|
||||
|
||||
let removed_count = queue.len();
|
||||
|
||||
if removed_count > 0 {
|
||||
queue.clear();
|
||||
|
||||
let prev_pending = self.inner.pending.fetch_sub(removed_count, Ordering::SeqCst);
|
||||
|
||||
if prev_pending == removed_count {
|
||||
self.inner.done_cond.notify_all();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/// 阻塞当前线程,直到所有在途任务(pending == 0)全部处理完
|
||||
pub fn wait_until_all_consumed(&self) {
|
||||
let mut _queue_lock = self.inner.data.lock().unwrap();
|
||||
|
||||
@ -55,6 +55,7 @@ pub async fn post_run(
|
||||
return Ok(None);
|
||||
}
|
||||
cnt.reset();
|
||||
queue.clear();
|
||||
queue.push_all(tasks);
|
||||
Ok(Some(id))
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user