Hi lan,

The sync.Pool has memory accesses in per-p private storage. Why it not 
reports `DATA RACE`, but it reports when I copy those code outside stdlib?
I'm confused about this, or there is something wrong in 
https://gist.github.com/lrita/efa8c4ae555b4b7cceee29b4ed819652 
Thanks.

在 2018年8月24日星期五 UTC+8上午4:36:06,Ian Lance Taylor写道:
>
> On Thu, Aug 23, 2018 at 12:43 AM,  <buaa...@gmail.com <javascript:>> 
> wrote: 
> > package main 
> > 
> > import "runtime" 
> > 
> > var a int 
> > 
> > func calc() { 
> >     for i := 0; i < 10; i++ { 
> >         go func() { 
> >             for { 
> >                 runtime.RaceDisable() 
> >                 a++ 
> >                 runtime.RaceEnable() 
> >             } 
> >         }() 
> > 
> >     } 
> > } 
> > 
> > func main() { 
> >     calc() 
> > } 
> > 
> > go run -race a.go 
>
> Thanks for the example.  As the docs for runtime.RaceDisable say, it 
> only applies to synchronization events, like mutex locks.  It doesn't 
> apply to memory accesses. 
>
> Ian 
>
>
> > 在 2018年8月22日星期三 UTC+8下午10:34:35,Ian Lance Taylor写道: 
> >> 
> >> On Wed, Aug 22, 2018 at 3:25 AM,  <nea...@gmail.com> wrote: 
> >> > 
> >> > When I copy the sync.Pool's source code in a repo, and using 
> >> > `//go:linkname` 
> >> > link those runtime functions manually. 
> >> > When I run `go test -race`, it reports `DATA RACE`. 
> >> > But the sync.Pool with the same test case does not report  `DATA 
> RACE`. 
> >> > 
> >> > Does runtime.RaceDisable not work in non-std library ? 
> >> 
> >> It should work.  I think you'll have to show us your code. 
> >> 
> >> 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 <javascript:>. 
> > 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