¿Por qué este código Go está bloqueando?

Escribí el siguiente programa:

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!")
    }
}

Dado que la lista de eventos del canal es un canal con buffer, creo que debería obtener exactamente 100 veces la salida "¡Hey!", Pero se muestra solo una vez. ¿Dónde está mi error?

Respuestas a la pregunta(3)

Su respuesta a la pregunta