Fix various issues in libpkl (#1805)

* Fix possible SIGSEGV from host process.
   - Require that the same `pkl_exec_t` be used in the same OS thread; returning meaningful error if this fails
* Remove `System.exitProcess(1)` logic in NativeTransport; this would kill the host process too and isn't an appropriate action for a received ProtocolException
* Allow multiple calls to pkl_init without pkl_close; this limitation doesn't really make any sense
* Prefer calling methods defined in graal_isolate.h, instead of creating the same method via CEntryPoint
* Add a CMakeLists.txt so that CLion can follow the code and provide proper diagnostics
* Improve doc comments; describe params as either in or out
This commit is contained in:
Daniel Chao
2026-07-31 16:23:37 +00:00
committed by GitHub
parent 5333d55269
commit 417c08ae11
10 changed files with 169 additions and 188 deletions
@@ -231,7 +231,9 @@ class Server(private val transport: MessageTransport) : AutoCloseable {
build()
}
} catch (e: IllegalArgumentException) {
throw ProtocolException(e.message ?: "Failed to create an evalutor. $e", e)
throw ProtocolException(e.message ?: "Failed to create an evaluator. $e", e)
} catch (e: IllegalStateException) {
throw ProtocolException(e.message ?: "Failed to create an evaluator. $e", e)
}
}