Nodir Gulyamov wrote: > Tried to rewrite using Event() just as experiment, but unfortunately > MainThread will blocking all others. > Code below: > > import threading > > class class1: > def __init__(self): > self.myEvent = threading.Event() > result = doSomeJob() > > def increaseCounter(self): > self.myEvent.set() > > doSomeJob(self): > ##### BLOCKING HERE ### > if not self.myEvent.isSet(): > self.myEvent.wait()
The initial 'if' is superflous. > self.myEvent.clear() > # ... continue... > > # this class subscribed to some observer which implements thread > class monitor: > def __init__(self, klass): > #do some init > self.c = klass > def update(self): > self.c.increaseCounter() > > if __name__ == "__main__": > cl1 = class1() > m = monitor(cl1) > mo = MonitorObserver(m) Obviously that won't work. You only have one thread, and it blocks in doSomeJob, so no one can ever trigger the even. -- --Bryan -- http://mail.python.org/mailman/listinfo/python-list