Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-28 Thread Jake Montgomery
Contexts are great. And if your goal is to solve a specific problem, then sometimes they may be the best solution. But you implied in your OP that you were learning go. And in that case, I would still urge you to understand your original channel based code, and why it does not work, and how to

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-27 Thread Brian Candler
The magic behind contexts is that they use a channel but without sending any data over it. Instead, *closing* the channel is a signal to terminate. This allows you to have multiple goroutines listening on the channel, and they will *all* receive the termination signal, as a broadcast. (It wou

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-27 Thread Juan Mamani
Hi Brian, Thanks for your help. I will try out to implement your samples in my project. But still studying Goroutines and now Context. El miércoles, 26 de febrero de 2020, 10:41:26 (UTC-3), Brian Candler escribió: > > Perhaps slightly clearer: > https://play.golang.org/p/DDZxqaEFi-T > >

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-26 Thread Brian Candler
Perhaps slightly clearer: https://play.golang.org/p/DDZxqaEFi-T -- 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 vie

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-26 Thread Brian Candler
> > My previous questions were: How can I cancel execution of goToSleep() > function? How can I break it? > > Maybe you want something like this? https://play.golang.org/p/2dKbVMxBjaJ context is the standard way to be able to cancel one or more of goroutines,

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-26 Thread Jake Montgomery
The code you posted above never actually called goToSleep(), because the 'strings ' channel was nil. Could you post a playground link to the new code that you are running below? On Tuesday, February 25, 2020 at 8:38:27 PM UTC-5, Juan Mamani wrote: > > Ok, you are right. But I was confused with

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-25 Thread Juan Mamani
Hi Michel, I've tried your sample with this result: 2020/02/25 23:12:51.854561 Stop in 2s 2020/02/25 23:12:51.854710 Hey! 2020/02/25 23:12:57.854967 Bye Bye! But function still running."Bye Bye" appeared +6s later. I will check Context package as you recomended me. Thanks! El martes, 25 de

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-25 Thread Juan Mamani
Ok, you are right. But I was confused with this: 2009/11/10 23:00:00 -Start 2009/11/10 23:00:00 Sleeping 8 seconds..2009/11/10 23:00:03 Canceling doWork goroutine reach 3s...2009/11/10 23:00:08 Done sleeping! 2009/11/10 23:00:08 doWork exited. 2009/11/10 23:00:08 Done. 2009/11/1

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-25 Thread Juan Mamani
Reallly thanks for your help and guide! El martes, 25 de febrero de 2020, 5:45:17 (UTC-3), Michel Levieux escribió: > > Edit: I said "communicate with its caller" but in practice it might as > well be another goroutine or the caller of the caller, either way the > construct and the logic standin

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-25 Thread Jake Montgomery
> > Expected behaviour is to end anonyimous func when 3s timeout is reached. > So what is the problem? The whole thing *does *exit after 3 seconds. Of course, your main() is a loop, so it starts again. 2009/11/10 23:00:00 -Start 2009/11/10 23:00:03 Canceling doWork goroutine

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-25 Thread Michel Levieux
Edit: I said "communicate with its caller" but in practice it might as well be another goroutine or the caller of the caller, either way the construct and the logic standing behind it are exactly the same :) Le mar. 25 févr. 2020 à 09:42, Michel Levieux a écrit : > Hi Juan, > > You cannot termin

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-25 Thread Michel Levieux
Hi Juan, You cannot terminate a function execution from its caller if you did not pass it an argument (most likely a channel) which it can use to communicate with its caller, and terminate itself when the timeout is reached. The simplest example I can think of is the following: https://play.golang

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-24 Thread Juan Mamani
Sorry again. Well, I followed your advice. Here is the link https://play.golang.org/p/7DigEVsKbdx How can I cancel goToSleep() when timeout is reached? El lunes, 24 de febrero de 2020, 14:16:32 (UTC-3), Jake Montgomery escribió: > > Your code will still not compile. In this group, it is often

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-24 Thread Jake Montgomery
Your code will still not compile. In this group, it is often helpful to include a link to your code in the playground (https://play.golang.org/) using the "Share" button. That is in addition to, or instead of, posting your code in the message. This will allow others to easily run your code, but

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-24 Thread Juan Mamani
Sorry}, here is the right code: ( just was the effect to b working til At 5:20am sleepy and lost) Expected behaviour is to end anonyimous func when 3s timeout is reached. // package main import( //"fmt" "time" "math/rand" "log" ) func main()

Re: [go-nuts] Understind how to apply timeout using gouritine

2020-02-24 Thread Lutz Horn
> I've tried to adapt from from "Concurrency in Go by Katherine Cox-Buday" to > understand how to apply timeout. But I don't get it. What are you trying to do? What is the expected behaviour, what happens instead? BTW, this code does not compile, there are same unbalanced curly brackets. Lutz