Changeset 107

Show
Ignore:
Timestamp:
04/16/02 15:34:01 (6 years ago)
Author:
sholloway
Message:

Bugfixes

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBJabber/RBJabber/SubjectObserver/StateMachine.py

    r88 r107  
    8181                for each in self._Influxs: 
    8282                    each.SetHandled() 
     83                lock.SetLock(None) 
    8384         
    8485    def AddInflux(self, Influx): 
  • trunk/RBJabber/RBJabber/SubjectObserver/Subject.py

    r95 r107  
    8383            for each in self.Observers: 
    8484                self.UpdateObserver(each, _cachedUpdates) 
     85            lock.SetLock(None) 
    8586            return 1 
    8687        else: return 0 
     
    9192    def Lock(self): 
    9293        class lock: 
     94            subject = None 
    9395            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() 
    94104                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)) 
    100107        return lock(self) 
    101108