If I call destroy() once the loop is deleted from the tls, so the second time I'd get AttributeError, loop wuld be set to None, and None is not self, so you'd get RuntimeError. Am I missing something?