hi,

I do not seem to to get this one to not panic, and do not understand why 
yet.

This code gets the names of files using shell globbing , so go run 
testchannels.go dir/*

This gets the name and size info of all 1000 files in the dire,  but panics 
at the end with a deadlock:

fatal error: all goroutines are asleep - deadlock!

goroutine 1 [select]:
main.run({0xc000118018, 0x3e8, 0x57f308?})
        /pathtestchannels.go:44 +0x278
main.main()
        /path/testchannels.go:15 +0x66
exit status 2

I do not seem to be able to find  my mistake. Any hints appreciated ;-).

package main

import (
        "flag"
        "fmt"
        "os"
        "sync"
)

func main() {
        flag.Parse()

        files := flag.Args()

        run(files)

}

func run(files []string) {
        errCh := make(chan error, 10)
        resCh := make(chan string, 10)
        doneCh := make(chan struct{})
        wg := sync.WaitGroup{}

        for _, file := range files {
                wg.Add(1)
                go func(file string) {
                        defer wg.Done()
                        f, err := os.Stat(file)
                        if err != nil {
                                errCh <- fmt.Errorf("could not stat %s: 
%w\n", file, err)
                        }
                        resCh <- fmt.Sprintf("name: %s\t size: %d", 
f.Name(), f.Size())

                }(file)
        }

        go func() {
                wg.Wait()
                close(doneCh)
        }()

        for {
                select {
                case err := <-errCh:
                        fmt.Println(err)
                case data := <-resCh:
                        fmt.Println("from result channel: ", data)
                }
        }
}


regards,

Natxo

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/golang-nuts/49fb8d6d-9db7-4f62-ab34-8eefdb6e8ad9n%40googlegroups.com.

Reply via email to