Hey.
I'm working through the concurrency chapter in Lisp Outside the Box found here. I'm using Bordeaux threads instead of Allegro CL.
Also in the given example for an event loop:
I'm working through the concurrency chapter in Lisp Outside the Box found here. I'm using Bordeaux threads instead of Allegro CL.
(defvar *k0* nil)
(setf *k0* (bt:make-thread ;; capture returned thread object
(lambda()
(unwind-protect (loop)
(print "Goodbye" #.*standard-output*))) :name "Say goodbye"))
What is the purpose of the sharp-dot read macro here; I know that it's returning the *standard-output* object at read time, I just don't get why/how it's being done?Also in the given example for an event loop:
(defun improved-event-loop () ;; ACL code, not Bordeaux threads!
(loop
(process-wait "Waiting for something to happen" 'something-has-happened)
(act-on-that-thing)))
Is there a way to get equivalent behavior with Bordeaux threads despite the absence of thread-wait in its API? Thanks.