MainThread blocks all others
gelios at rbcmail.ru
Wed Aug 10 13:35:22 CEST 2005
Tried to rewrite using Event() just as experiment, but unfortunately
MainThread will blocking all others.
self.myEvent = threading.Event()
result = doSomeJob()
##### BLOCKING HERE ###
if not self.myEvent.isSet():
# ... continue...
# this class subscribed to some observer which implements thread
def __init__(self, klass):
#do some init
self.c = klass
if __name__ == "__main__":
cl1 = class1()
m = monitor(cl1)
mo = MonitorObserver(m)
Observer realized as described in Thinking in Python, Bruce Eckel
Does anybody have any idea? Any help will be appreciated.
Thanks in advance to ALL!
"Nodir Gulyamov" <gelios at rbcmail.ru> wrote in message
news:42f9d4ef_2 at news.isis.de...
> Hi Bryan,
> Thanks for your reply.
> I tried to test your solution, but it doesn't work, hence
> threading.Semaphore object hasn't method to get value of semaphore.
> I looked to source code of semaphore.py and find out that value is private
> Best regards,
> "Bryan Olson" <fakeaddress at nowhere.org> wrote in message
> news:fRaKe.3656$zr1.2646 at newssvr13.news.prodigy.com...
>> > Make self.counter a semaphore. Untested code:
>> A little clean-up. Still untested:
>> import threading
>> class class1:
>> def __init__(self):
>> self.counter = threading.semaphore(0)
>> result = self.doSomeJob()
>> def increaseCounter(self):
>> def doSomeJob(self):
>> # Busy-waiting sucks.
>> # while counter != 1:
>> # pass
>> # ... continue...
More information about the Python-list