News for hackers. Stuff that matters.
Re:Rust and Go by NateDad on Saturday November 08, 2014 @07:00AM (#8576617)
If all goroutines deadlock, then the runtime will panic and you'll get stack traces for everything. But yes, you can obviously deadlock one or more goroutines trivially. A simple select{} will just block one goroutine forever, for example. And no, there's no tools currently that will detect deadlocks, AFAIK.
Re:Rust and Go by mutation on Saturday November 08, 2014 @11:52AM (#8577400)
It seems that Go's race detector (https://blog.golang.org/race-detector) can do that. see an example: http://pastie.org/9705392
Re:Rust and Go by malkia on Saturday November 08, 2014 @09:48AM (#8576990)
I haven't looked into that (or googled), but how does one detect that everything has deadlocked - is it some kind of profiling/sampling being done, or is it something more system specific? Any pointers? Thanks!
Re:Rust and Go by jesstaa on Saturday November 08, 2014 @11:24PM (#8579096)
http://golang.org/pkg/runtime/pprof/#Profile Provides a "blocking profile" that tells you what things blocked and for how long they blocked for. You can use it to find places where you've deadlocked as well as places where adding buffered channels might help performance.
Re:Rust and Go by f2f on Saturday November 08, 2014 @11:38AM (#8577354)