diff --git a/app/channels/channel.go b/app/channels/channel.go index a5b2d91..70c9bda 100644 --- a/app/channels/channel.go +++ b/app/channels/channel.go @@ -56,6 +56,7 @@ func (channel *Channel) SetMetadata(data map[string]string) { func (channel *Channel) Metadata() chan map[string]string { outC := make(chan map[string]string) go func() { + defer close(outC) c := channel.Events.Sub("metadata") forloop: for event := range c { diff --git a/plugins/icecast/output/instance.go b/plugins/icecast/output/instance.go index d8a37be..f0fc8bd 100644 --- a/plugins/icecast/output/instance.go +++ b/plugins/icecast/output/instance.go @@ -75,7 +75,7 @@ func (instance *pluginInstance) Init() { nw = mw metadataChan := channel.Metadata() - defer close(metadataChan) + defer func() { metadataChan <- nil }() go func() { for metadata := range metadataChan { metadataToWrite := streams.Metadata{}