From 671e9742c777c7ff927ca8ab2c07334e83bbace6 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 30 Apr 2018 11:19:03 +0100 Subject: [PATCH] Speedup from avoiding uselessly enqueueing an empty work queue --- syndicate/dataspace.rkt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/syndicate/dataspace.rkt b/syndicate/dataspace.rkt index 052386e..3d52d52 100644 --- a/syndicate/dataspace.rkt +++ b/syndicate/dataspace.rkt @@ -335,11 +335,12 @@ (when new-handler (dataspace-subscribe! ds new-handler))))))))) (define (commit-actions! ds ac) - (define pending (actor-pending-actions ac)) - ;; (log-info "commit-actions!: ~a actions ~a" ac (queue->list pending)) - (set-dataspace-pending-actions! ds (enqueue (dataspace-pending-actions ds) - (action-group ac (queue->list pending)))) - (set-actor-pending-actions! ac (make-queue))) + (define pending (queue->list (actor-pending-actions ac))) + ;; (log-info "commit-actions!: ~a actions ~a" ac pending) + (when (pair? pending) + (set-actor-pending-actions! ac (make-queue)) + (set-dataspace-pending-actions! ds (enqueue (dataspace-pending-actions ds) + (action-group ac pending))))) (define (run-all-pending-scripts! ds) (define runnable (dataspace-runnable ds))