| Index: cc/CCScopedThreadProxy.h
|
| diff --git a/cc/CCScopedThreadProxy.h b/cc/CCScopedThreadProxy.h
|
| index 802046dcfa858a6dbe09b4d0896adac1b99f10f3..20a6b07dc9f1e57ec55eb73c52cf2a7af293b9c0 100644
|
| --- a/cc/CCScopedThreadProxy.h
|
| +++ b/cc/CCScopedThreadProxy.h
|
| @@ -1,74 +1,6 @@
|
| -// Copyright 2011 The Chromium Authors. All rights reserved.
|
| +// Copyright 2012 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.
|
|
|
| -#ifndef CCScopedThreadProxy_h
|
| -#define CCScopedThreadProxy_h
|
| -
|
| -#include "CCThreadTask.h"
|
| -#include "base/threading/platform_thread.h"
|
| -#include <wtf/OwnPtr.h>
|
| -#include <wtf/PassOwnPtr.h>
|
| -#include <wtf/ThreadSafeRefCounted.h>
|
| -
|
| -namespace cc {
|
| -
|
| -// This class is a proxy used to post tasks to an target thread from any other thread. The proxy may be shut down at
|
| -// any point from the target thread after which no more tasks posted to the proxy will run. In other words, all
|
| -// tasks posted via a proxy are scoped to the lifecycle of the proxy. Use this when posting tasks to an object that
|
| -// might die with tasks in flight.
|
| -//
|
| -// The proxy must be created and shut down from the target thread, tasks may be posted from any thread.
|
| -//
|
| -// Implementation note: Unlike ScopedRunnableMethodFactory in Chromium, pending tasks are not cancelled by actually
|
| -// destroying the proxy. Instead each pending task holds a reference to the proxy to avoid maintaining an explicit
|
| -// list of outstanding tasks.
|
| -class CCScopedThreadProxy : public ThreadSafeRefCounted<CCScopedThreadProxy> {
|
| -public:
|
| - static PassRefPtr<CCScopedThreadProxy> create(CCThread* targetThread)
|
| - {
|
| - ASSERT(base::PlatformThread::CurrentId() == targetThread->threadID());
|
| - return adoptRef(new CCScopedThreadProxy(targetThread));
|
| - }
|
| -
|
| - ~CCScopedThreadProxy();
|
| -
|
| - // Can be called from any thread. Posts a task to the target thread that runs unless
|
| - // shutdown() is called before it runs.
|
| - void postTask(PassOwnPtr<CCThread::Task> task)
|
| - {
|
| - ref();
|
| - m_targetThread->postTask(createCCThreadTask(this, &CCScopedThreadProxy::runTaskIfNotShutdown, task));
|
| - }
|
| -
|
| - void shutdown()
|
| - {
|
| - ASSERT(base::PlatformThread::CurrentId() == m_targetThread->threadID());
|
| - ASSERT(!m_shutdown);
|
| - m_shutdown = true;
|
| - }
|
| -
|
| -private:
|
| - explicit CCScopedThreadProxy(CCThread* targetThread);
|
| -
|
| - void runTaskIfNotShutdown(PassOwnPtr<CCThread::Task> popTask)
|
| - {
|
| - OwnPtr<CCThread::Task> task = popTask;
|
| - // If our shutdown flag is set, it's possible that m_targetThread has already been destroyed so don't
|
| - // touch it.
|
| - if (m_shutdown) {
|
| - deref();
|
| - return;
|
| - }
|
| - ASSERT(base::PlatformThread::CurrentId() == m_targetThread->threadID());
|
| - task->performTask();
|
| - deref();
|
| - }
|
| -
|
| - CCThread* m_targetThread;
|
| - bool m_shutdown; // Only accessed on the target thread
|
| -};
|
| -
|
| -}
|
| -
|
| -#endif
|
| +// Temporary forwarding header
|
| +#include "cc/scoped_thread_proxy.h"
|
|
|