mirror of
https://github.com/golang/go.git
synced 2025-10-19 19:13:18 +00:00
runtime/cgo: retry when CreateThread fails with ERROR_ACCESS_DENIED
_cgo_beginthread used to retry _beginthread only when it failed with EACCESS, but CL 651995 switched to CreateThread and incorrectly mapped EACCESS to ERROR_NOT_ENOUGH_MEMORY. The correct mapping is ERROR_ACCESS_DENIED. Fixes #72814 Fixes #75381 Change-Id: I8ba060114aae4e8249576f11a21eff613caa8001 Reviewed-on: https://go-review.googlesource.com/c/go/+/706075 Reviewed-by: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Knyszek <mknyszek@google.com>
This commit is contained in:
parent
69e74b0aac
commit
e93f439ac4
1 changed files with 1 additions and 1 deletions
|
@ -145,7 +145,7 @@ void _cgo_beginthread(unsigned long (__stdcall *func)(void*), void* arg) {
|
|||
|
||||
for (tries = 0; tries < 20; tries++) {
|
||||
thandle = CreateThread(NULL, 0, func, arg, 0, NULL);
|
||||
if (thandle == 0 && GetLastError() == ERROR_NOT_ENOUGH_MEMORY) {
|
||||
if (thandle == 0 && GetLastError() == ERROR_ACCESS_DENIED) {
|
||||
// "Insufficient resources", try again in a bit.
|
||||
//
|
||||
// Note that the first Sleep(0) is a yield.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue