libthread da plan9port comprende una struct canale che sarà molto simile ; prendere atto del contributo di Russ Cox sia plan9port e di go-Lang, e la libthread history:
Muoversi in una direzione diversa, Luca Cardelli e Rob Pike sviluppati le idee in CSP nel Squeak mini-lingua [4] per la generazione del codice di interfaccia utente . (Questo Squeak è distinto dall'implementazione Squeak Smalltalk .) Pike successivamente espanse Squeak nel linguaggio di programmazione completo Newsqueak [5] [6] che generò Alef di Plan 9 [7] [8], Inferno's Limbo [9] e Google's Go [13].
In un momento successivo nella storia del Plan 9, è diventato troppo sforzo per mantenere l'infrastruttura per due lingue, in modo da Alef è stato interrotto e il CSP costruisce portato su C sotto forma di libthread.
Quindi, poiché i canali Go sono essenzialmente un discendente diretto da libthread, non credo che troverete qualcosa di più simili :)
c'è un motivo per cui il recv sta bloccando? non pensavo dovessi bloccare per recv, lo stesso potrebbe essere vero per selezionare – matt
Questo non è un bug. Blocca su recv() quando è in attesa di dati dal thread principale. L'ho solo detto per spiegare meglio l'architettura del programma. – lzm
Felice di vedere che non sono l'unico ad apprezzare i "canali". –