1.1 --- a/lemon/bits/alteration_notifier.h Fri Jan 20 19:08:00 2012 +0100
1.2 +++ b/lemon/bits/alteration_notifier.h Sun Jan 29 11:28:41 2012 +0100
1.3 @@ -23,6 +23,7 @@
1.4 #include <list>
1.5
1.6 #include <lemon/core.h>
1.7 +#include <lemon/bits/lock.h>
1.8
1.9 //\ingroup graphbits
1.10 //\file
1.11 @@ -251,7 +252,7 @@
1.12
1.13 typedef std::list<ObserverBase*> Observers;
1.14 Observers _observers;
1.15 -
1.16 + lemon::bits::Lock _lock;
1.17
1.18 public:
1.19
1.20 @@ -332,14 +333,18 @@
1.21 protected:
1.22
1.23 void attach(ObserverBase& observer) {
1.24 + _lock.lock();
1.25 observer._index = _observers.insert(_observers.begin(), &observer);
1.26 observer._notifier = this;
1.27 + _lock.unlock();
1.28 }
1.29
1.30 void detach(ObserverBase& observer) {
1.31 + _lock.lock();
1.32 _observers.erase(observer._index);
1.33 observer._index = _observers.end();
1.34 observer._notifier = 0;
1.35 + _lock.unlock();
1.36 }
1.37
1.38 public: