diff options
author | Arun Isaac | 2024-09-30 02:11:59 +0100 |
---|---|---|
committer | Arun Isaac | 2024-10-01 01:12:51 +0100 |
commit | 08226a390ac206e4e8062cd0a30a96289c38dd27 (patch) | |
tree | 5e1a19526007e0b7175630fb74f4bb212bbbff40 | |
parent | 0b7241bffd43ef3ce26734a020ca5dfe72dcc95a (diff) | |
download | ravanan-08226a390ac206e4e8062cd0a30a96289c38dd27.tar.gz ravanan-08226a390ac206e4e8062cd0a30a96289c38dd27.tar.lz ravanan-08226a390ac206e4e8062cd0a30a96289c38dd27.zip |
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.
-rw-r--r-- | ravanan/propnet.scm | 9 |
1 files 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))) |