From 487279bc1b6f391ce05749ce00076c00c39ee2da Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Fri, 30 Aug 2024 16:21:12 +0200 Subject: [PATCH] core:select actions: stop at first match, do not collect all matching actions --- core/core.lisp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/core/core.lisp b/core/core.lisp index 4f2a68d..54612ea 100644 --- a/core/core.lisp +++ b/core/core.lisp @@ -31,13 +31,14 @@ acts)) (defun select (msg acts) - (let ((h (shape:head msg)) - (hdlrs nil)) + (let ((h (shape:head msg))) + ;(hdlrs nil)) (dolist (a acts) - (if (match (pattern a) h) - (dolist (hdlr (handlers a)) + (when (match (pattern a) h) + (return-from select (handlers a)))))) +#| (dolist (hdlr (handlers a)) (push hdlr hdlrs)))) - hdlrs)) + hdlrs))|# ;(nreverse hdlrs))) (defun match (pat h)