| 329 | socket.close() |
| 330 | |
| 331 | async def shutdown(self): |
| 332 | if not self._shutdown_status: |
| 333 | self._shutdown_status = True |
| 334 | self.log.verbose(f"{self.name}: shutting down...") |
| 335 | # send shutdown signal |
| 336 | await self.send_shutdown_message() |
| 337 | # then terminate context |
| 338 | try: |
| 339 | self.context.destroy(linger=0) |
| 340 | except Exception: |
| 341 | print(traceback.format_exc(), file=sys.stderr) |
| 342 | try: |
| 343 | self.context.term() |
| 344 | except Exception: |
| 345 | print(traceback.format_exc(), file=sys.stderr) |
| 346 | # delete socket file on exit |
| 347 | self.socket_path.unlink(missing_ok=True) |
| 348 | |
| 349 | |
| 350 | class EngineServer(EngineBase): |