Changeset 107
- Timestamp:
- 04/16/02 15:34:01 (6 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/RBJabber/RBJabber/SubjectObserver/StateMachine.py
r88 r107 81 81 for each in self._Influxs: 82 82 each.SetHandled() 83 lock.SetLock(None) 83 84 84 85 def AddInflux(self, Influx): trunk/RBJabber/RBJabber/SubjectObserver/Subject.py
r95 r107 83 83 for each in self.Observers: 84 84 self.UpdateObserver(each, _cachedUpdates) 85 lock.SetLock(None) 85 86 return 1 86 87 else: return 0 … … 91 92 def Lock(self): 92 93 class lock: 94 subject = None 93 95 def __init__(self, lockedsubject): 96 self.SetLock(lockedsubject) 97 def __del__(self): 98 self.SetLock(None) 99 def SetLock(self, lockedsubject): 100 if self.subject and id(self) in self.subject._locked: 101 self.subject._locked.remove(id(self)) 102 if self.subject._cachedUpdates: 103 self.subject.UpdateObservers() 94 104 self.subject = lockedsubject 95 self.subject._locked.append(id(self)) 96 def __del__(self): 97 self.subject._locked.remove(id(self)) 98 if self.subject._cachedUpdates: 99 self.subject.UpdateObservers() 105 if self.subject: 106 self.subject._locked.append(id(self)) 100 107 return lock(self) 101 108
