From 08226a390ac206e4e8062cd0a30a96289c38dd27 Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Mon, 30 Sep 2024 02:11:59 +0100 Subject: propnet: Pass on scheduler to schedule calls. This enables sub-propnets (or compound propagators) to share the same scheduler. * ravanan/propnet.scm (activate-propagator): Accept scheduler as argument instead of the schedule function. (poll-propnet): Pass scheduler as argument instead of its schedule function. --- ravanan/propnet.scm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ravanan/propnet.scm b/ravanan/propnet.scm index 6110d93..f78e8e0 100644 --- a/ravanan/propnet.scm +++ b/ravanan/propnet.scm @@ -84,10 +84,10 @@ map @var{proc} over both the lists and return the resulting lists." (values (map proc true-list) (map proc false-list)))) -(define (activate-propagator schedule propagator inputs-alist) +(define (activate-propagator scheduler propagator inputs-alist) "Activate @var{propagator} with inputs from @var{inputs-alist}. If some required inputs are absent, do nothing. Schedule the propagator using -@var{schedule}." +@var{scheduler}." (match (lset-difference equal? (map (match-lambda ((input-name . _) input-name)) @@ -96,7 +96,8 @@ required inputs are absent, do nothing. Schedule the propagator using ((input-name . _) input-name)) inputs-alist) (propagator-optional-inputs propagator)) - (() (just (schedule (propagator-proc propagator) inputs-alist))) + (() (just ((scheduler-schedule scheduler) + (propagator-proc propagator) inputs-alist scheduler))) (_ %nothing))) (define (rassoc val alist) @@ -215,7 +216,7 @@ add to the inbox." (append (maybe-alist (cons (propagator-name propagator) (activate-propagator - (scheduler-schedule scheduler) + scheduler propagator (propagator-input-values cells propagator)))) propagators-in-flight))) -- cgit v1.2.3