Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1615)

Unified Diff: cc/scoped_thread_proxy.h

Issue 11571068: Use WeakPtr for posting cc tasks to main thread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased Created 7 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layer_tree_host_unittest_animation.cc ('k') | cc/scoped_thread_proxy.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/scoped_thread_proxy.h
diff --git a/cc/scoped_thread_proxy.h b/cc/scoped_thread_proxy.h
deleted file mode 100644
index 373c388df8c1a904c7eb6b748b7953ba19bf4063..0000000000000000000000000000000000000000
--- a/cc/scoped_thread_proxy.h
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright 2011 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 CC_SCOPED_THREAD_PROXY_H_
-#define CC_SCOPED_THREAD_PROXY_H_
-
-#include "base/memory/ref_counted.h"
-#include "base/callback.h"
-#include "cc/cc_export.h"
-#include "cc/thread.h"
-#include "base/location.h"
-#include "base/logging.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 CC_EXPORT ScopedThreadProxy : public base::RefCountedThreadSafe<ScopedThreadProxy> {
-public:
- static scoped_refptr<ScopedThreadProxy> create(cc::Thread* targetThread)
- {
- DCHECK(targetThread->belongsToCurrentThread());
- return make_scoped_refptr(new ScopedThreadProxy(targetThread));
- }
-
- // Can be called from any thread. Posts a task to the target thread that runs unless
- // shutdown() is called before it runs.
- void postTask(const tracked_objects::Location& location, base::Closure cb);
-
- void shutdown();
-
-private:
- explicit ScopedThreadProxy(cc::Thread* targetThread);
- friend class base::RefCountedThreadSafe<ScopedThreadProxy>;
- ~ScopedThreadProxy();
-
- void runTaskIfNotShutdown(base::Closure cb);
-
- cc::Thread* m_targetThread;
- bool m_shutdown; // Only accessed on the target thread
-};
-
-} // namespace cc
-
-#endif // CC_SCOPED_THREAD_PROXY_H_
« no previous file with comments | « cc/layer_tree_host_unittest_animation.cc ('k') | cc/scoped_thread_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698