1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 //go:build race 6 7 package race 8 9 import ( 10 "runtime" 11 "unsafe" 12 ) 13 14 func ReadSlice[T any](s []T) { 15 if len(s) == 0 { 16 return 17 } 18 runtime.RaceReadRange(unsafe.Pointer(&s[0]), len(s)*int(unsafe.Sizeof(s[0]))) 19 } 20 21 func WriteSlice[T any](s []T) { 22 if len(s) == 0 { 23 return 24 } 25 runtime.RaceWriteRange(unsafe.Pointer(&s[0]), len(s)*int(unsafe.Sizeof(s[0]))) 26 } 27