Add example to MessageLoop::ReleaseSoon comment.

BUG=

Review URL: https://codereview.chromium.org/302633009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273059 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: ab8748ec61f0a2690e91f3f86f3d5e2ec43f1eb3
diff --git a/base/message_loop/message_loop.h b/base/message_loop/message_loop.h
index 4bb7d55..25891c5 100644
--- a/base/message_loop/message_loop.h
+++ b/base/message_loop/message_loop.h
@@ -207,6 +207,17 @@
   // 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