diff --git a/pkgs/racket-test-core/tests/racket/sync.rktl b/pkgs/racket-test-core/tests/racket/sync.rktl index 615b1e56b4..5341cdfc6d 100644 --- a/pkgs/racket-test-core/tests/racket/sync.rktl +++ b/pkgs/racket-test-core/tests/racket/sync.rktl @@ -1005,6 +1005,15 @@ (values #f self)])))) (test #t sync (p))) +(let () + (struct not-ever-evt () + #:property prop:evt + (unsafe-poller + (lambda (self wakeups) + (printf "~s\n" wakeups) + (values #f never-evt)))) + (test #f sync/timeout 0 (not-ever-evt))) + ;; ---------------------------------------- ;; Garbage collection diff --git a/racket/src/racket/src/struct.c b/racket/src/racket/src/struct.c index 4a9325bfaa..d75f84dbd7 100644 --- a/racket/src/racket/src/struct.c +++ b/racket/src/racket/src/struct.c @@ -1661,7 +1661,7 @@ static int evt_struct_is_ready(Scheme_Object *o, Scheme_Schedule_Info *sinfo) v = scheme_make_closed_prim_w_arity(return_wrapped, (void *)v, "wrapper", 1, 1); } scheme_set_sync_target(sinfo, v, (done ? v : NULL), NULL, 0, 0, NULL); - return 1; + return done; } }