Goose - Go Interpreter with Virtual Machine (VM)


func worker(inputCh *int, outputCh *int) {
id := <-inputCh
result := id * 2
outputCh <- result
}
func main() {
numWorkers := 3

inputCh := make(chan int, numWorkers)
for i := 0; i < numWorkers; i++ {
inputCh <- i
}


outputCh := make(chan int, 0)
wg := wgInit()
for i := 0; i < numWorkers; i++ {
wgAdd(wg)
go func () {
worker(inputCh, outputCh); wgDone(wg)
}()
}
for i := 0; i < numWorkers; i++ {
print(<-outputCh)
}
wgWait(wg)
}
Compile to see instructions