// Copyright 2015 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 import ( _ "p" "syscall" "time" ) import "C" var initCh = make(chan int, 1) var ranMain bool func init() { // emulate an exceedingly slow package initialization function time.Sleep(100 * time.Millisecond) initCh <- 42 } func main() { ranMain = true } //export DidInitRun func DidInitRun() bool { select { case x := <-initCh: if x != 42 { // Just in case initCh was not correctly made. println("want init value of 42, got: ", x) syscall.Exit(2) } return true default: return false } } //export DidMainRun func DidMainRun() bool { return ranMain }