У меня есть метод destroy (), который вызывается до того, как мой поток прерывается.
def destroy(self):
self.logger.debug("Instance is being destroyed")
//do stuff
self.logger.debug("Instance has been destroyed")
Это код, из которого он вызывается:
if (__name__ == '__main__'):
try:
instance = device_instance()
while True:
//do stuff
if input_string == 'destroy':
instance.destroy()
logger.debug("Back in main after destroying")
break
else:
//do stuff
time.sleep(.100)
except Exception, ex:
logger.debug("Exception occurred" + str(ex))
except:
logger.debug("Unhandled exception occurred")
Теперь, когдаЯ запускаю его, проблема в том, что я вижу в журнале операторы «Экземпляр уничтожается» и «Экземпляр уничтожен», и я не вижу «Вернуться в главное после уничтожения».Это означает, что мой destroy () никогда не возвращается.Я попытался добавить явный оператор возврата, все та же проблема.Если я добавлю sys.exit (0) к destroy () в конце, это вызовет исключение, которое в конечном итоге перехватывается в main.В чем может быть проблема?