]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: mingw Sleep
authorJoe Poirier <jdpoirier@gmail.com>
Fri, 30 Apr 2010 06:08:22 +0000 (23:08 -0700)
committerRuss Cox <rsc@golang.org>
Fri, 30 Apr 2010 06:08:22 +0000 (23:08 -0700)
R=rsc, brainman
CC=golang-dev
https://golang.org/cl/961047

src/pkg/syscall/syscall_mingw.go
src/pkg/syscall/zsyscall_mingw_386.go

index 067a26f2016bc20926ab7c0eace31b3b21922dfb..be09480dbdbeaf80776f9eff80d5eba1e57fd3fa 100644 (file)
@@ -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"
index ccfb616ef1e0d740b27f106da60ca5df7b6be344..2032c14a65074f01c879c5d72ae8f4842ff9637e 100644 (file)
@@ -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
+}