blob: 64b5b84f5d2e3c162c2eb6f77e64fceafd81d75f [file] [log] [blame]
// 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