- if not self.execing:
- self.close_on_next_exec = retval
- else:
- self.session.close(self, *retval)
+ if not self.in_close:
+ if not self.execing:
+ self.close_on_next_exec = retval
+ else:
+ self.in_close = True
+ self.session.close(self, *retval)