blob: 41bc66350e1395665e6fe37ca881f6e1a8a0f18f [file] [log] [blame] [edit]
// Copyright 2022 The ChromiumOS Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FACED_UTIL_TASK_H_
#define FACED_UTIL_TASK_H_
#include <utility>
#include <base/location.h>
#include "base/task/sequenced_task_runner.h"
namespace faced {
// Get the current task's SequencedTaskRunner.
//
// A shorter way of writing `base::SequencedTaskRunner::GetCurrentDefault()`.
inline const scoped_refptr<base::SequencedTaskRunner>& CurrentSequence() {
return base::SequencedTaskRunner::GetCurrentDefault();
}
// Post a task to the current thread's SequencedTaskRunner.
//
// Invalid to call if there is no current sequence.
inline bool PostToCurrentSequence(
base::OnceClosure task,
const base::Location& from_here = base::Location::Current()) {
return CurrentSequence()->PostTask(from_here, std::move(task));
}
} // namespace faced
#endif // FACED_UTIL_TASK_H_