libthread de plan9port comprend un struct canal qui sera très similaire ; prendre note de la contribution de Russ Cox à la fois plan9port et aller-lang et le libthread history:
Déplacement dans une autre direction, Luca Cardelli et Rob Pike développé les idées CSP dans le mini-langage Squeak [4] pour générer le code d'interface utilisateur . (Ce Squeak est distinct de l'implémentation de Squeak Smalltalk .) Pike a ensuite étendu Squeak dans le langage de programmation à part entière Newsqueak [5] [6] qui a engendré le Alef de Plan 9 [7] [8], Limbes de l'enfer [9] , et Google's Go [13].
ultérieurement dans l'histoire du Plan 9, il est devenu trop d'efforts pour maintenir l'infrastructure pour deux langues, Alef a été interrompu et le CSP construit à C porté sous forme de libthread.
Ainsi, puisque les canaux go sont essentiellement un descendant direct de libthread, je ne pense pas que vous trouverez quelque chose plus similaire :)
Y a-t-il une raison pour laquelle recv bloque? Je ne pensais pas que vous deviez bloquer à recv, même peut-être vrai pour sélectionner – matt
Ce n'est pas un bug. Il bloque sur recv() lorsqu'il attend des données du thread principal. Je l'ai seulement dit pour mieux expliquer l'architecture du programme. – lzm
Content de voir que je ne suis pas le seul à apprécier les "canaux". –