cs: fix interactio of unsafe capture and barriers

Fix `unsafe-call-with-composable-continuation/no-wind` so that it's
not blocked by a barrier, since it's supposed to have thread-like
capturing ability.

Closes #3696
This commit is contained in:
Matthew Flatt 2021-02-23 12:56:46 -07:00
parent fff39d0306
commit 18435e3a08
2 changed files with 17 additions and 1 deletions

View File

@ -19,3 +19,19 @@
'no)
(check done? #t)
(set! done? #f)
(check
(call-as-nonatomic-retry-point
(lambda ()
(try-atomic
(lambda ()
(call-with-continuation-barrier
(lambda ()
(sync/timeout 0.25 ch)))
(set! done? #t))
'barrier)))
'barrier)
(check done? #t)

View File

@ -526,7 +526,7 @@
(|#%app|
p
(make-composable-continuation
(extract-metacontinuation 'call-with-composable-continuation (strip-impersonator tag) #f)
(extract-metacontinuation 'call-with-composable-continuation (strip-impersonator tag) (not wind?))
k
(current-winders)
(current-mark-stack)