Warum blockiert dieser Go-Code?

Ich habe folgendes Programm geschrieben:

package main

import (
    "fmt"
)

func processevents(list chan func()) {
    for {
        //a := <-list
        //a()
    }
}

func test() {
    fmt.Println("Ho!")
}

func main() {

    eventlist := make(chan func(), 100)

    go processevents(eventlist)

    for {
        eventlist <- test
        fmt.Println("Hey!")
    }
}

Da es sich bei der Channel Eventlist um einen gepufferten Channel handelt, denke ich, ich sollte genau das 100-fache der Ausgabe "Hey!" Bekommen, aber sie wird nur einmal angezeigt. Wo ist mein Fehler?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage