Пример #1
0
	def run(self):
		print("Waiting....")
		while self.isUpdates.wait():
			print("Something to process !")
			programToRun=None
			with self.lock:
				if len (self.programs) != 0:
					print("number of programs",len (self.programs))
					programToRun = self.programs.pop()

			if programToRun != None:
				#programToRun["client"].running=True
				#Has the program already been started once ?
				if "program" not in programToRun.keys():
					programToRun.update(CPU.startProgram(programToRun["programString"]))
				else:
					programToRun.update(CPU.execute(programToRun["program"],programToRun["memory"],programToRun["state"]))

				#programToRun["client"].running=False
				with self.lock:
					if len(programToRun["program"])==programToRun["state"]:
						print("program finished", "memory is ",hex(id(programToRun["memory"])), "of" ,programToRun["programString"])
					else:
						self.programs.appendleft(programToRun)
			else :
				self.isUpdates.clear()
				print ("Waiting for new programs to process...")