blob: 64b5b84f5d2e3c162c2eb6f77e64fceafd81d75f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "platform/scheduler/CancellableTaskFactory.h"
#include "public/platform/Platform.h"
namespace blink {
void CancellableTaskFactory::cancel()
{
m_weakPtrFactory.revokeAll();
}
WebTaskRunner::Task* CancellableTaskFactory::cancelAndCreate()
{
cancel();
return new CancellableTask(m_weakPtrFactory.createWeakPtr());
}
void CancellableTaskFactory::CancellableTask::run()
{
if (CancellableTaskFactory* taskFactory = m_weakPtr.get()) {
SameThreadClosure* closure = taskFactory->m_closure.get();
taskFactory->m_weakPtrFactory.revokeAll();
(*closure)();
}
}
} // namespace blink
|