2010-11-21 4 views
2

J'ai utilisé SRFI 18 dans différentes implémentations de Scheme (Gambit, Gauche et Chicken), et j'aimerais savoir où trouver dpcumentation/tutorials/informations sur les problèmes qui peuvent surgir quand on utilise des continuations dans des threads? Je suppose qu'il y a beaucoup de problèmes, comme ce qui se passe si un thread invoque une continuation qui a été capturée par un autre thread - à l'intérieur ou à l'extérieur de dynamic-wind, et ainsi de suite.Informations et exemples d'interaction entre threads et continuations dans Scheme?

Pas seulement une spécification (comme le SRFI lui-même), mais des conseils et des exemples de code, des exemples de la façon dont ces problèmes sont traités dans les programmes habituels.

Y a-t-il quelque chose comme ça quelque part?

Répondre

1

Vous ne trouverez rien comme ça pour Schéma, car il n'y a pas de thread dans la spécification standard. Pour aggraver les choses, il y aura probablement des différences majeures entre les implémentations car certaines implémentations de threads utilisent la continuation et certaines utilisent une approche plus native. (Par exemple, Racket tombe dans cette dernière catégorie, et dans certains cas, vous pouvez "migrer" continuations entre les threads.)

+1

"il n'y a pas de thread dans la spécification standard" - oui, mais il y a un SRFI (18) le décrivant, et quelques implémentations Scheme le supportent ... – Jay

+0

"Support" pour ce srfi peut être discutable, mais si vous le savez, alors vous pouvez juste le lire - attentivement. Il y a une section sur les continuations et les vents dynamiques, etc. –