Loading dataraces/dataraces.go 0 → 100644 +1 −0 Original line number Diff line number Diff line package dataraces dataraces/dataraces_test.go 0 → 100644 +45 −0 Original line number Diff line number Diff line package dataraces import ( "sync" "testing" ) func TestDatarace1(t *testing.T) { // THIS IS WRONG var wg sync.WaitGroup wg.Add(5) for i := 0; i < 5; i++ { go func() { t.Logf("i: %d", i) wg.Done() }() } wg.Wait() } func TestDatarace2(t *testing.T) { // THIS IS WORKING var wg sync.WaitGroup wg.Add(5) for i := 0; i < 5; i++ { go func(n int) { t.Logf("i: %d", n) wg.Done() }(i) } wg.Wait() } func TestDatarace3(t *testing.T) { // THIS IS WORKING AS WELL var wg sync.WaitGroup wg.Add(5) for i := 0; i < 5; i++ { n := i go func() { t.Logf("i: %d", n) wg.Done() }() } wg.Wait() } Loading
dataraces/dataraces.go 0 → 100644 +1 −0 Original line number Diff line number Diff line package dataraces
dataraces/dataraces_test.go 0 → 100644 +45 −0 Original line number Diff line number Diff line package dataraces import ( "sync" "testing" ) func TestDatarace1(t *testing.T) { // THIS IS WRONG var wg sync.WaitGroup wg.Add(5) for i := 0; i < 5; i++ { go func() { t.Logf("i: %d", i) wg.Done() }() } wg.Wait() } func TestDatarace2(t *testing.T) { // THIS IS WORKING var wg sync.WaitGroup wg.Add(5) for i := 0; i < 5; i++ { go func(n int) { t.Logf("i: %d", n) wg.Done() }(i) } wg.Wait() } func TestDatarace3(t *testing.T) { // THIS IS WORKING AS WELL var wg sync.WaitGroup wg.Add(5) for i := 0; i < 5; i++ { n := i go func() { t.Logf("i: %d", n) wg.Done() }() } wg.Wait() }