| 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
|
|
|