The dropped (agent/start ...) note named the wrong cause rather than being unreachable: an over-long socket path fails the agent's bind while it is linked. That case is now refused before anything is built, and the comments, the TODO entry and the fixture say so.
26 lines
1.2 KiB
Plaintext
26 lines
1.2 KiB
Plaintext
;;;; A program that has not been told about the agent and is still running.
|
|
;;;;
|
|
;;;; dev-noagent.flan is the other half of this pair and stops short of it: its
|
|
;;;; main returns, so a moment later it is parked, and a redefinition sent to a
|
|
;;;; parked program is answered by the parking path. This one keeps running,
|
|
;;;; which is the state nothing had pinned: there is no agent in the process to
|
|
;;;; hand a module to and no socket to fall back on, so the daemon refuses the
|
|
;;;; delivery.
|
|
;;;;
|
|
;;;; That is the honest answer for it: the reply says the program has no agent
|
|
;;;; and how to add one. A program that *links* the agent has its socket bound
|
|
;;;; by the package's constructor before main, and the one way that bind fails
|
|
;;;; — a socket path too long for a unix socket — is refused when flan dev
|
|
;;;; starts.
|
|
;;;;
|
|
;;;; So: no (import agent ...) anywhere, and a loop that outlasts the test.
|
|
(defn step [] i64 7)
|
|
|
|
(defn main [] i32
|
|
(print (step)) (println "")
|
|
;; Long enough that the session ends before the program does; short enough
|
|
;; that a daemon killed the hard way leaves nothing running for minutes.
|
|
(dotimes [i 3000]
|
|
(sleep-seconds 0.01))
|
|
0)
|