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

Unified Diff: base/message_loop/message_loop.h

Issue 302633009: Add example to MessageLoop::ReleaseSoon comment. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/message_loop/message_loop.h
diff --git a/base/message_loop/message_loop.h b/base/message_loop/message_loop.h
index 4bb7d550bccf53a53c062daea1436208bd6e6b38..25891c5dc7c7c4866a5b865b8b1cc13f9092daaa 100644
--- a/base/message_loop/message_loop.h
+++ b/base/message_loop/message_loop.h
@@ -207,6 +207,17 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate {
// live until the next run of the MessageLoop, or if the object needs to be
// released on a particular thread.
//
+ // A common pattern is to manually increment the object's reference count
+ // (AddRef), issue a ReleaseSoon, then clear the pointer. The reference count
+ // is incremented manually to ensure clearing the pointer does not trigger a
+ // delete and to account for the upcoming decrement (ReleaseSoon). For
+ // example:
+ //
+ // scoped_refptr<Foo> foo = ...
+ // foo.AddRef();
+ // message_loop->ReleaseSoon(foo.get());
+ // foo = NULL;
+ //
// NOTE: This method may be called on any thread. The object will be
// released (and thus possibly deleted) on the thread that executes
// MessageLoop::Run(). If this is not the same as the thread that calls
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698