Hi,

i am trying to understand how nack-guard-evt works. Therefore i created the appended test program. Sometimes it stops with the error message and sometimes it prints the three values. It is clear to me what the error means and why it is raised. What i am not understanding is, why the nack generator is not run every time sync is called. I would have expected from the docs that it is run on every sync. Can someone clarify why my assumptions are wrong and how nack-guard-evt is expected to behave?

Related question: The docs for the function talk abound 'proc', should it be 'generator'?

Tobias



;; -----------------------------

#lang racket

(define nack #f)

(sync (handle-evt
       always-evt
       (lambda (_) 'ALWAYS))
      (nack-guard-evt
       (lambda (e)
         (set! nack e)
         never-evt)))

nack
(printf "~a\n" (sync/timeout 0. nack))

'ALWAYS
#f
. . sync/timeout: contract violation
  expected: evt?
  given: #f
  argument position: 2nd
  other arguments...:
   0.0

OR

'ALWAYS
#<evt>
#<void>



--
---------------------------------------------------------
Tobias Hammer
DLR / Robotics and Mechatronics Center (RMC)
Muenchner Str. 20, D-82234 Wessling
Tel.: 08153/28-1487
Mail: tobias.ham...@dlr.de
____________________
 Racket Users list:
 http://lists.racket-lang.org/users

Reply via email to