(self)
| 108 | _TIMEOUT_EXPIRED = subprocess.TimeoutExpired |
| 109 | |
| 110 | def __del__(self): |
| 111 | try: |
| 112 | # Shut down the session first so remote nodes can exit gracefully. |
| 113 | if self.sess is not None: |
| 114 | self.sess.shutdown() |
| 115 | finally: |
| 116 | for node in self.remote_nodes: |
| 117 | try: |
| 118 | node.wait(timeout=10) |
| 119 | except self._TIMEOUT_EXPIRED: |
| 120 | node.kill() |
| 121 | node.wait() |
| 122 | |
| 123 | |
| 124 | def create_socket_session(num_workers): |