- Lock lock(m_observerLock);
- for (vector<const Observer*>::iterator i=m_observers.begin(); i!=m_observers.end(); i++) {
- if (oldObserver==(*i)) {
- m_observers.erase(i);
- return oldObserver;
- }
+ Lock lock(m_observerLock.get());
+ vector<const Observer*>::iterator i = find(m_observers.begin(), m_observers.end(), oldObserver);
+ if (i != m_observers.end()) {
+ m_observers.erase(i);
+ return oldObserver;