summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Poirier <jdpoirier@gmail.com>2010-04-29 23:08:22 -0700
committerJoe Poirier <jdpoirier@gmail.com>2010-04-29 23:08:22 -0700
commit884ccd25ed97fe0ef5ae8715f3d0b1d081f2f78b (patch)
treef4f9240cfc515666681aeeabce2415b90fef7800
parent3d74bc2af068136c564bba5a2b1a5c93d9f25190 (diff)
downloadgolang-884ccd25ed97fe0ef5ae8715f3d0b1d081f2f78b.tar.gz
syscall: mingw Sleep
R=rsc, brainman CC=golang-dev http://codereview.appspot.com/961047 Committer: Russ Cox <rsc@golang.org>
-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 067a26f20..be09480db 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 ccfb616ef..2032c14a6 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
+}