I think this should do the trick for AllegroCL
i tested it out with allegro 7.0 trial. just need to unlock the mutex first in event-wait. otherwise works similar to openmcl.
i added it to my darcs repo. http://monday-monkey.com/repos/erlisp/
...bryan
(defun make-event () ... #+allegrocl (mp:make-gate nil) ...)
(defun event-wait (event mutex) ;note: this function should appear inside with-mutex block ... #+allegro (progn (mp:process-wait "wait for message" #'mp:gate-open-p event) (mp:close-gate event)) ...)
(defun event-notify (event) ... #+allegro (mp:open-gate event) ...)