| Index: base/observer_list_threadsafe.h
|
| ===================================================================
|
| --- base/observer_list_threadsafe.h (revision 4449)
|
| +++ base/observer_list_threadsafe.h (working copy)
|
| @@ -81,11 +81,15 @@
|
| void RemoveObserver(ObserverType* obs) {
|
| ObserverList<ObserverType>* list = NULL;
|
| MessageLoop* loop = MessageLoop::current();
|
| + if (!loop)
|
| + return; // On shutdown, it is possible that current() is already null.
|
| {
|
| AutoLock lock(list_lock_);
|
| - DCHECK(observer_lists_.find(loop) != observer_lists_.end()) <<
|
| - "RemoveObserver called on for unknown thread";
|
| list = observer_lists_[loop];
|
| + if (!list) {
|
| + NOTREACHED() << "RemoveObserver called on for unknown thread";
|
| + return;
|
| + }
|
|
|
| // If we're about to remove the last observer from the list,
|
| // then we can remove this observer_list entirely.
|
|
|