|
|
|
@ -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_;
|
|
|
|
|
}
|
|
|
|
|