Commit 12cc9ba8 authored by Boris Mühmer's avatar Boris Mühmer
Browse files

added some datarace examples

parent f0c2913b
Loading
Loading
Loading
Loading

dataraces/dataraces.go

0 → 100644
+1 −0
Original line number Diff line number Diff line
package dataraces
+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()
}