()
| 3800 | * @returns {Promise<void>} promise |
| 3801 | */ |
| 3802 | const onShutdown = async () => { |
| 3803 | if (stopped) return; |
| 3804 | stopped = true; |
| 3805 | await this.stop(); |
| 3806 | }; |
| 3807 | |
| 3808 | // Teardown is the one place a loop is unavoidable. A `MultiCompiler` has no |
| 3809 | // `shutdown` hook, and its aggregate `watchClose` does NOT fire on |