From a4a63ae28854dc231f871d59172be9f56c6a02b2 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 1 Dec 2013 19:52:36 -0500 Subject: Fix signal coroutine. --- 2d/signals.scm | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/2d/signals.scm b/2d/signals.scm index 0265973..400f61e 100644 --- a/2d/signals.scm +++ b/2d/signals.scm @@ -117,12 +117,7 @@ value will be propagated to LISTENER." "Detach all connectors from SIGNAL." (%set-signal-connectors! signal '())) -(codefine* (signal-set! signal value #:optional (from #f)) - "Set VALUE for SIGNAL from the connected signal FROM and -propagate VALUE to all connected signals. " - (signal-set-and-propagate! signal value from)) - -(define (signal-set-and-propagate! signal value from) +(define* (signal-set! signal value #:optional (from #f)) "Set VALUE for SIGNAL from the connected signal FROM and propagate VALUE to all connected signals. " (let ((value (%signal-transform signal value from))) @@ -134,11 +129,11 @@ propagate VALUE to all connected signals. " "Call the filter procedure for SIGNAL with VALUE." ((signal-filter signal) value (signal-ref signal) from)) -(define (signal-receive! signal value from) +(codefine (signal-receive! signal value from) "Receive VALUE for SIGNAL from the connected signal FROM. VALUE will be set if it passes through the filter." (when (signal-keep? signal value from) - (signal-set-and-propagate! signal value from))) + (signal-set! signal value from))) ;;; ;;; Primitive signals -- cgit v1.2.3