aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Poirier <jdpoirier@gmail.com>2010-04-29 23:08:22 -0700
committerRuss Cox <rsc@golang.org>2010-04-29 23:08:22 -0700
commit4aaddf8a35926a48c245b261c2295fba3572f25d (patch)
treec3e68c7af8069aea8e92176dbd8a8460c2d40609
parent77817e08d5681a29268adf7deb36b3e2ba2a8b2c (diff)
downloadgo-4aaddf8a35926a48c245b261c2295fba3572f25d.tar.gz
go-4aaddf8a35926a48c245b261c2295fba3572f25d.zip
syscall: mingw Sleep
R=rsc, brainman CC=golang-dev https://golang.org/cl/961047
-rw-r--r--src/pkg/syscall/syscall_mingw.go9
-rw-r--r--src/pkg/syscall/zsyscall_mingw_386.go8
2 files changed, 16 insertions, 1 deletions
diff --git a/src/pkg/syscall/syscall_mingw.go b/src/pkg/syscall/syscall_mingw.go
index 067a26f201..be09480dbd 100644
--- a/src/pkg/syscall/syscall_mingw.go
+++ b/src/pkg/syscall/syscall_mingw.go
@@ -121,9 +121,18 @@ func getSysProcAddr(m uint32, pname string) uintptr {
//sys GetComputerName(buf *uint16, n *uint32) (ok bool, errno int) = GetComputerNameW
//sys SetEndOfFile(handle int32) (ok bool, errno int)
//sys GetSystemTimeAsFileTime(time *Filetime)
+//sys sleep(msec uint32) = Sleep
// syscall interface implementation for other packages
+func Sleep(nsec int64) (errno int) {
+ nsec += 999999 // round up to milliseconds
+ msec := uint32(nsec / 1e6)
+ sleep(msec)
+ errno = 0
+ return
+}
+
func Errstr(errno int) string {
if errno == EMINGW {
return "not supported by windows"
diff --git a/src/pkg/syscall/zsyscall_mingw_386.go b/src/pkg/syscall/zsyscall_mingw_386.go
index ccfb616ef1..2032c14a65 100644
--- a/src/pkg/syscall/zsyscall_mingw_386.go
+++ b/src/pkg/syscall/zsyscall_mingw_386.go
@@ -1,4 +1,4 @@
-// mksyscall_mingw.sh -l32 syscall_mingw.go syscall_mingw_386.go
+// mksyscall_mingw.sh -l32 syscall_mingw.go zsyscall_mingw_386.go
// MACHINE GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
package syscall
@@ -33,6 +33,7 @@ var (
procGetComputerNameW = getSysProcAddr(modKERNEL32, "GetComputerNameW")
procSetEndOfFile = getSysProcAddr(modKERNEL32, "SetEndOfFile")
procGetSystemTimeAsFileTime = getSysProcAddr(modKERNEL32, "GetSystemTimeAsFileTime")
+ procSleep = getSysProcAddr(modKERNEL32, "Sleep")
)
func GetLastError() (lasterrno int) {
@@ -315,3 +316,8 @@ func GetSystemTimeAsFileTime(time *Filetime) {
Syscall(procGetSystemTimeAsFileTime, uintptr(unsafe.Pointer(time)), 0, 0)
return
}
+
+func sleep(msec uint32) {
+ Syscall(procSleep, uintptr(msec), 0, 0)
+ return
+}