As far as I can see your GetUrlValues function only ever prints one string.

Ian

On Wed, Oct 25, 2017 at 6:30 AM,  <desaiabhi...@gmail.com> wrote:
> I am expecting to show url1 (2 sec ), url2 (4 sec ) but not url3( 6 sec)
> where timeout is 5 sec
>
> but program showing only url1 value
>
> Please help
>
> https://play.golang.org/p/aMOoSEHjmZ
>
> Thanks in advance
>
> Rgds,
>
> Abhi
>
>
> package main
>
> import "fmt"
> import "time"
>
> func InvokeUrl1(u string, val chan<- string) {
>     time.Sleep(2 * time.Second)
>     val <- "Url1 Value"
> }
> func InvokeUrl2(u string, val chan<- string) {
>     time.Sleep(4 * time.Second)
>     val <- "Url2 Value"
> }
> func InvokeUrl3(u string, val chan<- string) {
>     time.Sleep(6 * time.Second)
>     val <- "Url3 Value"
> }
>
> func GetUrlValues(urls []string) {
>
>     ch := make(chan string, 1)
>     for _, url := range urls {
>         go func(u string) {
>             val := make(chan string)
>             if u == "url1" {
>               go InvokeUrl1(u, val)
>             } else if u == "url2" {
>               go InvokeUrl2(u, val)
>             } else if u == "url3" {
>               go InvokeUrl3(u, val)
>             }
>
>             select {
>             case ret := <-val:
>                 ch <- ret
>             case <-time.After(5 * time.Second):
>                 ch <- "nil"
>             }
>         }(url)
>     }
>     fmt.Println(<-ch)
> }
> func main() {
>   GetUrlValues([]string{"url1", "url2", "url3"})
> }
>
> --
> 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.
> For more options, visit https://groups.google.com/d/optout.

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to