]> Cypherpunks.ru repositories - gostls13.git/commit
runtime: wait for Go runtime to initialize in Windows signal test
authorJason A. Donenfeld <Jason@zx2c4.com>
Fri, 21 May 2021 10:01:39 +0000 (12:01 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Fri, 21 May 2021 13:21:00 +0000 (13:21 +0000)
commit7e63c8b765c30823131bd136d190afbe4c21abc9
treeb2541afd74abd5d0d7098e89454452940ecd2731
parent831573cd21e65c37b4e1bf5d44dc23b125084b7a
runtime: wait for Go runtime to initialize in Windows signal test

The test harness waits for "ready" as a sign that the Go runtime has
installed its signal handler and is ready to be tested. But actually,
while LoadLibrary starts the loading of the Go runtime, it does so
asynchronously, so the "ready" sign is potentially premature and
certainly racy. However, all exported cgo entry points make a call to
_cgo_wait_runtime_init_done which waits for that asynchronous
initialization to complete. Therefore, this commit fixes the test to
call into the exported "Dummy" cgo function before emitting the "ready"
sign, so that we're sure the Go runtime is actually loaded.

Updates #45638.

Change-Id: I9b12b172d45bdcc09d54dd301de3a3e499544834
Reviewed-on: https://go-review.googlesource.com/c/go/+/321769
Trust: Jason A. Donenfeld <Jason@zx2c4.com>
Run-TryBot: Jason A. Donenfeld <Jason@zx2c4.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
src/runtime/testdata/testwinlibsignal/main.c