Commit e56070d1 authored by Christopher Lemmer Webber's avatar Christopher Lemmer Webber

Remove struct contract in favor of manual predicate check

This results in a 10x speedup for spawns / bcom.
parent 7f1b06e6
......@@ -147,8 +147,7 @@
;;; ---------------
;; once a local refr, always a local refr.
(struct mactor:local-actor mactor:local
(handler become become-unsealer become?)
#:guard (struct-guard/c procedure? any/c any/c any/c))
(handler become become-unsealer become?))
;; Once encased, always encased.
;; TODO: Maybe we don't need mactors for this. Maybe anything that's
......@@ -1090,6 +1089,9 @@
(make-become-sealer-triplet))
(define actor-handler
(keyword-apply actor-constructor kws kw-args become args))
(unless (procedure? actor-handler)
(error 'invalid-actor-handler "Not a procedure: ~a" actor-handler))
(actormap-set! actormap actor-refr
(mactor:local-actor actor-handler
become become-unseal become?))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment