pynative wait input tensor

pull/7849/head
kswang 4 years ago
parent ce0fd1f297
commit 82667c7a57

@ -220,6 +220,7 @@ bool Executor::IsTaskReady(const std::shared_ptr<RunGraphTask> &task) {
void Executor::SyncRunTask(const std::shared_ptr<Task> &task) {
std::unique_lock<std::mutex> lock(task_mutex_);
ready_tasks_.push(task);
done_tasks_.clear();
task_cond_var_.notify_all();
sync_cond_var_.wait(lock);
MsException::GetInstance().CheckException();
@ -328,6 +329,11 @@ void Executor::RunOp(const SessionPtr &session, OpRunInfo *op_run_info, const Gr
task->op_run_info_ = op_run_info;
task->graph_info_ = graph_info;
task->input_tensors_ = input_tensors;
for (auto &tensor : input_tensors) {
if (tensor->NeedWait()) {
tensor->Wait();
}
}
SyncRunTask(task);
*outputs = task->outputs_;
}

Loading…
Cancel
Save