I assume stop_requested is an Event object. Maybe other thread cleared it?

It was never set! -> nothing can clear it.
In theory, it could be that a thread sets the event object. E.g.:

#1. other thread calls stop_requested.set()
#2. "while not self.stop_requested.isSet()" -- loop exists
#3. other thread calls stop_requested.clear()
#4. called this: self.logger.error("Feeder stopped. stop_requested = %s",str(self.cm.stop_requested.isSet()))

However, this cannot happen. This application is running multiple threads (10+) and every thread monitors the global "stop_requested" flag. If there was an unexpected error in the service, stop_requested.set() is called. It will stop all threads and exit the process. stop_requested.clear() is NEVER called, so the while loop should have not been ended. So what is happening here? It drives me crazy.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to