crossfire/agent-deployment/crossfire-agent.rkt

16 lines
607 B
Racket

#lang racket/base
;; this is necessary because our C embedding runtime doesn't flush the plumber by default
;; idk how to do it in C, therefore we do it in racket, just before exiting
;; we need to flush otherwise logs might get dropped, particularly those relating to the error
(define old-esc-handler (error-escape-handler))
(error-escape-handler (lambda ()
(plumber-flush-all (current-plumber))
(old-esc-handler)))
;; execute agent-main
(require "../crossfire/agent.rkt")
(agent-main)
;; and if no error, also flush
(plumber-flush-all (current-plumber))