Commit f39fb6ac authored by Harvey Yang's avatar Harvey Yang Committed by Commit Bot

accelerometer: Use base::NoDestructor for AccelerometerReader

This commit replaces base::Singleton with base::NoDestructor. It helps
to determine the lifetime of AccelerometerReader and avoid usages of it
on invalid threads.

BUG=b:171446270
TEST=run on nightfury(with iioservice) and helios(without iioservice)

Change-Id: I55686e712a381c860054db14a1df00346b16ce6a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2543171Reviewed-by: default avatarXiaoqian Dai <xdai@chromium.org>
Commit-Queue: Cheng-Hao Yang <chenghaoyang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#828553}
parent ed634d1e
......@@ -8,7 +8,7 @@
#include "ash/accelerometer/accelerometer_file_reader.h"
#include "ash/accelerometer/accelerometer_provider_mojo.h"
#include "base/memory/singleton.h"
#include "base/no_destructor.h"
#include "base/posix/eintr_wrapper.h"
#include "base/sequenced_task_runner.h"
#include "base/threading/sequenced_task_runner_handle.h"
......@@ -24,7 +24,8 @@ constexpr char kIioServiceGroupName[] = "iioservice";
// static
AccelerometerReader* AccelerometerReader::GetInstance() {
return base::Singleton<AccelerometerReader>::get();
static base::NoDestructor<AccelerometerReader> accelerometer_reader;
return accelerometer_reader.get();
}
void AccelerometerReader::Initialize() {
......
......@@ -12,7 +12,7 @@
namespace base {
template <typename T>
struct DefaultSingletonTraits;
class NoDestructor;
class SequencedTaskRunner;
} // namespace base
......@@ -69,7 +69,7 @@ class ASH_EXPORT AccelerometerReader {
virtual ~AccelerometerReader();
private:
friend struct base::DefaultSingletonTraits<AccelerometerReader>;
friend class base::NoDestructor<AccelerometerReader>;
// Worker that will run on the base::SequencedTaskRunner provided to
// Initialize. It will determine accelerometer configuration, read the data,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment