IProcess implementation via java.lang.ProcessBuilder / ProcessHandle. Long-lived process lifecycle: spawn returns a live handle; wait/signal/pipe act on it. All operations return hive-dsl Result.
IProcess implementation via java.lang.ProcessBuilder / ProcessHandle. Long-lived process lifecycle: spawn returns a live handle; wait/signal/pipe act on it. All operations return hive-dsl Result.
Process liveness detection — single source of truth for is this pid alive?
semantics across the hive ecosystem.
Use this instead of inlining kill -0, ProcessHandle/of, or backend-
specific tricks. Liveness check is a system-level concern and belongs in
hive-system (per the IProcess family of protocols), not in callers.
The LivenessSignal ADT is the closed sum of valid outcomes:
:liveness/alive — pid is owned by a live OS process :liveness/dead — pid was once valid but the process is gone (ESRCH) :liveness/unknown — pid is nil/non-integer, or the check itself raised transiently. Callers MUST NOT zombify on :unknown (degrade-soft semantics — protect against false positives during boot races, container migrations, and short-lived OS hiccups).
Process liveness detection — single source of truth for `is this pid alive?`
semantics across the hive ecosystem.
Use this instead of inlining `kill -0`, `ProcessHandle/of`, or backend-
specific tricks. Liveness check is a system-level concern and belongs in
hive-system (per the IProcess family of protocols), not in callers.
The `LivenessSignal` ADT is the closed sum of valid outcomes:
:liveness/alive — pid is owned by a live OS process
:liveness/dead — pid was once valid but the process is gone (ESRCH)
:liveness/unknown — pid is nil/non-integer, or the check itself raised
transiently. Callers MUST NOT zombify on :unknown
(degrade-soft semantics — protect against false
positives during boot races, container migrations,
and short-lived OS hiccups).IWorker implementation — a warm request/response worker over a long-lived process (hive-system.process IProcess). Requests/responses are newline- delimited EDN; a monotonic :id correlates each response. Calls are single- flight via a hive-weave gate (1 permit); reads are timeout-bounded.
IWorker implementation — a warm request/response worker over a long-lived process (hive-system.process IProcess). Requests/responses are newline- delimited EDN; a monotonic :id correlates each response. Calls are single- flight via a hive-weave gate (1 permit); reads are timeout-bounded.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |