blob: 8a4bf795e9146586cf83da0140ab0579327773bd [file] [log] [blame] [edit]
// 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
}