github.com/hlts2/go@v0.0.0-20170904000733-812b34efaed8/src/runtime/race/testdata/cgo_test_main.go (about)

     1  // Copyright 2012 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  package main
     6  
     7  /*
     8  int sync;
     9  
    10  void Notify(void)
    11  {
    12  	__sync_fetch_and_add(&sync, 1);
    13  }
    14  
    15  void Wait(void)
    16  {
    17  	while(__sync_fetch_and_add(&sync, 0) == 0) {}
    18  }
    19  */
    20  import "C"
    21  
    22  func main() {
    23  	data := 0
    24  	go func() {
    25  		data = 1
    26  		C.Notify()
    27  	}()
    28  	C.Wait()
    29  	_ = data
    30  }