// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main /* int sync; void Notify(void) { __sync_fetch_and_add(&sync, 1); } void Wait(void) { while(__sync_fetch_and_add(&sync, 0) == 0) {} } */ import "C" func main() { data := 0 go func() { data = 1 C.Notify() }() C.Wait() _ = data }