Hi,

In Gambit 4.7.2 documentation, in the section dedicated to threads, there is the following code example :

(define thread-alive?
            (let ((unique (list ’unique)))
              (lambda (thread)
                ; Note: this procedure raises an exception if
                ; the thread terminated abnormally.
                (eq? (thread-join! thread 0 unique) unique))))
This code is actually incorrect (according to gsi), the let is rejected. I believe that :
(define thread-alive? 
 (lambda (thread)
     (eq? (thread-join! thread 0 'unique) 'unique)))

should be enough (though I do not know what happens if the thread returns nothing). I would like to know if there was some precise reason behind this let construction.
Thanks,

Denis