mirror of
https://github.com/golang/go
synced 2024-11-06 17:26:10 -07:00
a00611f58d
Updates #30228 Change-Id: Ie9dca7c64be8dff729be98cb6190236287afd23e Reviewed-on: https://go-review.googlesource.com/c/163213 Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Jay Conrod <jayconrod@google.com>
47 lines
767 B
Go
47 lines
767 B
Go
// 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 (
|
|
"syscall"
|
|
_ "testcshared/p"
|
|
"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
|
|
}
|