self.eventListCheckerThread = threading.Thread(target=self.eventListChecker) self.eventListCheckerThread.daemon = True #kills thread when main loop ends self.eventListCheckerThread.start() #Watchdog observer = Observer() event_handler = FileEvent(self, self.rootDir) observer.schedule(event_handler, self.rootDir, recursive=True) observer.start() #starts command line input loop self.readCommands() #if quit close socket and kill Watchdog thread self.s.close observer.unschedule_all() observer.stop() print "socket close" def eventListChecker(self): while True: if len(self.eventList) > 0: data = self.eventList.pop(0)#FIFO pop to get the oldest event first print data['ContentType'] + " ready for wrapping" self.packetList.append(data) else: time.sleep(0.5)#save cpu