Can nobody explain this? Please. how can a sleep() continue in a __bootstrap() ?
Regards, Vincent On 4 feb, 13:39, Vincent van Beveren <v.vanbeve...@rijnhuizen.nl> wrote: > Hi everyone, > > I'm currently working on a multithreaded GUI system in Python 2.6. In this > system I use conditions to coordinate synchronization. However, one condition > suddenly locks, without any cause. As a last resort I have written a small > routine to dump all the stack traces. > > def dumpAllStacks(self): > for threadId, stack in sys._current_frames().items(): > print "Thread with Id: %s" % threadId > traceback.print_stack(stack) > > When the system is dead-locked, I invoke this method. One stack-trace strikes > me as odd: > > Thread with Id: 1568 > File "c:\PYTHON26\lib\threading.py", line 497, in __bootstrap > self.__bootstrap_inner() > File "c:\PYTHON26\lib\threading.py", line 525, in __bootstrap_inner > self.run() > File "c:\PYTHON26\lib\threading.py", line 477, in run > self.__target(*self.__args, **self.__kwargs) > File "c:\PYTHON26\lib\site-packages\magnum\gui\autogui.py", line 2558, in > __sendDataLoop > self.__sendDataCondition.wait(1) > File "c:\PYTHON26\lib\threading.py", line 256, in wait > _sleep(delay) > File "c:\PYTHON26\lib\threading.py", line 497, in __bootstrap > self.__bootstrap_inner() <<===== What? > File "c:\PYTHON26\lib\threading.py", line 525, in __bootstrap_inner > self.run() > File "c:\PYTHON26\lib\site-packages\magnum\subsys\__init__.py", line 2242, > in run > self.updateTask() > File "c:\PYTHON26\lib\site-packages\magnum\subsys\__init__.py", line 2214, > in updateTask > > self.statusServerModule.updateTaskWithConnection(self.statusServerConnection) > File "c:\PYTHON26\lib\site-packages\magnum\subsys\shared\modules.py", line > 2450, in updateTaskWithConnection > self.updateDataWithConnection(connection, updateAll) > File "c:\PYTHON26\lib\site-packages\magnum\subsys\shared\modules.py", line > 2488, in updateDataWithConnection > self.updateVariableData(varDataDict, frozenset(varDataDict)) > File "c:\PYTHON26\lib\site-packages\magnum\subsys\shared\modules.py", line > 796, in updateVariableData > self.cmdMgr.updateVariableData(self.moduleId, varDataDict, forceVarIdSet) > # after this varMgr makes deepcopy > File "c:\PYTHON26\lib\site-packages\magnum\subsys\shared\managers.py", line > 441, in updateVariableData > self.notifyUpdateReport(updatedData) > File "c:\PYTHON26\lib\site-packages\magnum\subsys\shared\managers.py", line > 493, in notifyUpdateReport > with self.updateReportCondition: > File "c:\PYTHON26\lib\threading.py", line 205, in __enter__ > return self.__lock.__enter__() > File "c:\PYTHON26\lib\threading.py", line 121, in acquire > rc = self.__block.acquire(blocking) > > Can someone tell me how the sleep of one thread can continue as the 'run' of > another? Is this normal? Thanks in advance! > > Regards,Vincentvan Beveren > > ___ > Ing. V. van Beveren > Software Engineer, FOM Rijnhuizen > T: +31 (0) 30-6096769 > E: v.vanbeve...@rijnhuizen.nl -- http://mail.python.org/mailman/listinfo/python-list