On Friday, September 25, 2020 at 4:43:45 PM UTC-7 Ian Lance Taylor wrote: > On Fri, Sep 25, 2020 at 10:35 AM Alex Besogonov > <alex.be...@gmail.com> wrote: > > > > Inheritable goroutine-locals would actually work just fine in Go. > Moreover, Go actually has them in the form of pprof labels. > What should happen if one goroutine changes an inherited > goroutine-local variable? > A Go-style goroutine-local system can be thought as a context.Context that is transparently assigned to a goroutine and its children. Thus if you want to change the value, you'd do something like "c := magic.GetCurrentContext(); c = c.WithValue(...); magic.SetContext(c);".
This would affect only the current goroutine going forward, but not its children. > > On Wednesday, September 23, 2020 at 5:55:50 PM UTC-7 Ian Lance Taylor > wrote: > >> > >> On Wed, Sep 23, 2020 at 5:46 PM Alex Mills <al...@channelmeter.com> > wrote: > >> > > >> > There appears to be a way to get a reference on the goroutine id: > >> > > >> > http://blog.sgmansfield.com/2015/12/goroutine-ids/ > >> > >> But as you can see by reading that blog article, that is almost a joke. > >> > >> Go considers these things to be better handled explicitly, which is > >> why people are telling you to use a context.Context value. And, yes, > >> you'll want to use a Context aware logging package. > >> > >> In Go it's trivial to create new goroutines, and as soon as you do > >> that any goroutine-local-variable scheme falls apart. So Go has > >> consistently chosen to not provide that capability, and similarly to > >> not provide goroutine IDs. It's an intentional choice by the > >> language. There have been a number of discussions about this in the > >> past on this mailing list. > >> > >> Ian > > > > -- > > 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/f78f2d12-89d2-494d-983a-a462f0124d82n%40googlegroups.com. > > > -- 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/7bc62278-5cbc-47fe-abd2-36172e4e8520n%40googlegroups.com.