Thanks Ross and John for your help. I apologise for the code I posted earlier not being the full picture of what I was trying to achieve. I had instantiated multiple instances of elapseTime class and each of them gets called approximately the same time. Below is the updated code:
import time import thread import Queue printq = Queue.Queue(0) class elapseTime: def __init__(self, name=''): self.name = name self.timeStamp = None self.checkTimeFlag = False thread.start_new_thread(self.elapsedTime, ()) def setTime(self, state): if state == 1: self.checkTimeFlag = True self.timeStamp = time.clock() else: self.checkTimeFlag = False def elapsedTime(self): prevTime = time.clock() while True: curTime = time.clock() timeDiff = (curTime - prevTime) if timeDiff < 0.0: printq.put_nowait('time.clock() has gone backward!!! Time Diff '+str(timeDiff)) if self.checkTimeFlag: if (curTime - self.timeStamp) > 1.0: printq.put_nowait(self.name+", actual Elapsed Time"+str(round(curTime-self.timeStamp, 3))) self.checkTimeFlag = False prevTime = curTime time.sleep(0.05) def printmgr(): while True: print printq.get(True) # Print thread thread.start_new_thread(printmgr, ()) objList = [] for i in range(10): objList.append(elapseTime("obj"+str(i))) while True: for i in range(len(objList)): objList[i].setTime(1) time.sleep(10) print When I run the above code long enough in the PC I see the 'time.clock() has gone backward!!!' statement being printed once in a while. I have been reading a thread about invoking time.clock() at close proximity caused the 'time warp' problem. John, the PC experiencing this problem is a single core Intel Celeron 1GHz, XP SP2. The PC at home is a AMD Dual Core XP SP2. -- http://mail.python.org/mailman/listinfo/python-list