Por que esse bloqueio de código é?

Eu escrevi o seguinte 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!")
    }
}

Como a lista de eventos do canal é um canal em buffer, acho que devo chegar a exatamente 100 vezes a saída "Hey!", Mas ela é exibida apenas uma vez. Onde está o meu erro?

questionAnswers(3)

yourAnswerToTheQuestion