I think this is a perfect scenario for sync.Cond 
https://pkg.go.dev/sync#Cond.

On Tuesday, 20 July 2021 at 21:21:27 UTC+2 prawira.d...@gmail.com wrote:

> I personally like to use range channel to "break out" process in 
> goroutine, for example :
>
> package main
> import (
>     "fmt"
>     "sync"
> )
> func main() {
>     var wg sync.WaitGroup
>     c := make(chan bool)
>     wg.Add(1)
>     go func() {
>         defer wg.Done()
>         for b := range c {
>             fmt.Printf("Hello %t\n", b)
>         }
>     }()
>     c <- true
>     c <- true
>     close(c)
>     wg.Wait()
> }
>
> Dave Chenney has great post about this post : 
> http://dave.cheney.net/2013/04/30/curious-channels.
>
> Hope this helps
>
>
>
>
> On Wed, Jul 21, 2021 at 12:45 AM Brian Candler <b.ca...@pobox.com> wrote:
>
>> Which goroutine panics: the one which got a successful login, or the 
>> other ones?
>>
>> If the goroutine which sees a successful login panics, then that's a 
>> problem with that particular goroutine, and you'll need to debug it in the 
>> normal way.  Reading the panic message carefully would be a good starting 
>> point.
>>
>> Note that you don't "break out" of a goroutine; you can break out of a 
>> loop.  You can terminate a goroutine simply by returning from the function 
>> that was invoked by "go <somefunc>"
>>
>> If you want to terminate the other goroutines, then the standard way to 
>> do that is to use a Context, and signal the context as "done".  If those 
>> goroutines are blocked on I/O, they should be modified so that they make 
>> use of the context too. There is a blog post here 
>> <https://blog.golang.org/context> you'll find useful.  But it seems to 
>> me this is a separate problem to the one of the original goroutine throwing 
>> a panic.
>>
>> On Tuesday, 20 July 2021 at 17:29:22 UTC+1 Tenjin wrote:
>>
>>> I am wanting to try and login to mutiple servers at once (bruteforce) 
>>> now I am spawning a new goroutine for each set of credentials. I want to be 
>>> able to break out of my loop that I have once a successful login is met, as 
>>> of right now the program just throws a panic and I am unsure of what I can 
>>> do.
>>
>> -- 
>> 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...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/golang-nuts/f1953fe9-0cef-4f24-bf72-804a078bcb7an%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/golang-nuts/f1953fe9-0cef-4f24-bf72-804a078bcb7an%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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 on the web visit 
https://groups.google.com/d/msgid/golang-nuts/e2ddb1cf-b3d3-4ec7-842a-2353143e9c4en%40googlegroups.com.

Reply via email to