add build server lifecycle notifications

This commit is contained in:
Richard Howell
2019-08-28 10:20:52 -07:00
parent 293d22d541
commit 7b842235be
3 changed files with 12 additions and 0 deletions

View File

@@ -57,6 +57,11 @@ public final class BuildServerBuildSystem {
}
}
deinit {
_ = try? self.buildServer?.sendSync(ShutdownBuild())
self.buildServer?.send(ExitBuildNotification())
}
private func initializeBuildServer() throws {
let serverPath = AbsolutePath(serverConfig.argv[0], relativeTo: projectRoot)
let flags = Array(serverConfig.argv[1...])
@@ -78,6 +83,7 @@ public final class BuildServerBuildSystem {
let handler = BuildServerHandler()
let buildServer = try makeJSONRPCBuildServer(client: handler, serverPath: serverPath, serverFlags: flags)
let response = try buildServer.sendSync(initializeRequest)
buildServer.send(InitializedBuildNotification())
log("initialized build server \(response.displayName)")
self.buildServer = buildServer
self.handler = handler