func monitorSuspendResume() {
const (
- _DEVICE_NOTIFY_CALLBACK = 2
- _ERROR_FILE_NOT_FOUND = 2
- _ERROR_INVALID_PARAMETERS = 87
+ _DEVICE_NOTIFY_CALLBACK = 2
)
type _DEVICE_NOTIFY_SUBSCRIBE_PARAMETERS struct {
callback uintptr
callback: compileCallback(*efaceOf(&fn), true),
}
handle := uintptr(0)
- ret := stdcall3(powerRegisterSuspendResumeNotification, _DEVICE_NOTIFY_CALLBACK,
+ stdcall3(powerRegisterSuspendResumeNotification, _DEVICE_NOTIFY_CALLBACK,
uintptr(unsafe.Pointer(¶ms)), uintptr(unsafe.Pointer(&handle)))
- // This function doesn't use GetLastError(), so we use the return value directly.
- switch ret {
- case 0:
- return // Successful, nothing more to do.
- case _ERROR_FILE_NOT_FOUND:
- // Systems without access to the suspend/resume notifier
- // also have their clock on "program time", and therefore
- // don't want or need this anyway.
- return
- case _ERROR_INVALID_PARAMETERS:
- // This is seen when running in Windows Docker.
- // See issue 36557.
- return
- default:
- println("runtime: PowerRegisterSuspendResumeNotification failed with errno=", ret)
- throw("runtime: PowerRegisterSuspendResumeNotification failure")
- }
}
//go:nosplit