#include "services/webnn/scoped_sequence.h"
#include "base/task/single_thread_task_runner.h"
#include "gpu/command_buffer/service/scheduler.h"
#include "gpu/command_buffer/service/scheduler_task_runner.h"
namespace webnn {
ScopedSequence::ScopedSequence(
gpu::Scheduler& scheduler,
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
gpu::CommandBufferId command_buffer_id)
: scheduler_(scheduler),
sequence_id_(scheduler_->CreateSequence(
gpu::SchedulingPriority::kNormal,
std::move(task_runner),
gpu::CommandBufferNamespace::WEBNN_CONTEXT_INTERFACE,
command_buffer_id)),
scheduler_task_runner_(
base::MakeRefCounted<gpu::SchedulerTaskRunner>(*scheduler_,
sequence_id_)) {}
ScopedSequence::~ScopedSequence() {
scheduler_task_runner_->ShutDown();
scheduler_->DestroySequence(sequence_id_);
}
}