Index: device/base/device_monitor_linux.cc |
diff --git a/device/base/device_monitor_linux.cc b/device/base/device_monitor_linux.cc |
index cc64870b8cf17392507039756fe43eeef33af6ca..24aa95adc8e2e9cd4d2a10639b5178b96371d763 100644 |
--- a/device/base/device_monitor_linux.cc |
+++ b/device/base/device_monitor_linux.cc |
@@ -21,8 +21,8 @@ const char kUdevActionAdd[] = "add"; |
const char kUdevActionRemove[] = "remove"; |
// The instance will be reset when message loop destroys. |
-base::LazyInstance<std::unique_ptr<DeviceMonitorLinux>>::Leaky |
- g_device_monitor_linux_ptr = LAZY_INSTANCE_INITIALIZER; |
+base::LazyInstance<DeviceMonitorLinux>::Leaky g_device_monitor_linux = |
+ LAZY_INSTANCE_INITIALIZER; |
} // namespace |
@@ -61,9 +61,7 @@ DeviceMonitorLinux::DeviceMonitorLinux() : monitor_fd_(-1) { |
// static |
DeviceMonitorLinux* DeviceMonitorLinux::GetInstance() { |
- if (!g_device_monitor_linux_ptr.Get().get()) |
- g_device_monitor_linux_ptr.Get().reset(new DeviceMonitorLinux()); |
- return g_device_monitor_linux_ptr.Get().get(); |
+ return g_device_monitor_linux.Pointer(); |
} |
void DeviceMonitorLinux::AddObserver(Observer* observer) { |
@@ -113,13 +111,11 @@ void DeviceMonitorLinux::WillDestroyCurrentMessageLoop() { |
DCHECK(thread_checker_.CalledOnValidThread()); |
for (auto& observer : observers_) |
observer.WillDestroyMonitorMessageLoop(); |
- g_device_monitor_linux_ptr.Get().reset(nullptr); |
} |
DeviceMonitorLinux::~DeviceMonitorLinux() { |
- DCHECK(thread_checker_.CalledOnValidThread()); |
- base::MessageLoop::current()->RemoveDestructionObserver(this); |
- close(monitor_fd_); |
+ // A leaky LazyInstance is never destroyed. |
+ NOTREACHED(); |
} |
void DeviceMonitorLinux::OnMonitorCanReadWithoutBlocking() { |