]> Cypherpunks repositories - gostls13.git/commitdiff
time: split os-dependent part into sys.go.
authorDavid Symonds <dsymonds@golang.org>
Sat, 5 Mar 2011 03:57:39 +0000 (19:57 -0800)
committerDavid Symonds <dsymonds@golang.org>
Sat, 5 Mar 2011 03:57:39 +0000 (19:57 -0800)
R=rsc
CC=golang-dev
https://golang.org/cl/4259051

src/pkg/time/Makefile
src/pkg/time/sleep.go
src/pkg/time/sys.go [new file with mode: 0644]
src/pkg/time/time.go

index 5213e44572dadd02ec57407c1e84eb50992daf89..3fa96065e0f25c3cd0b3c309aa39a5dac361e50d 100644 (file)
@@ -8,6 +8,7 @@ TARG=time
 GOFILES=\
        format.go\
        sleep.go\
+       sys.go\
        tick.go\
        time.go\
 
index 833552d68412ca22fe0495a66223cd02f9c3d776..7b3f01f01e5a0c32853181a4e50aac4d68363a7e 100644 (file)
@@ -5,7 +5,6 @@
 package time
 
 import (
-       "os"
        "syscall"
        "sync"
        "container/heap"
@@ -47,30 +46,6 @@ func init() {
        timers.Push(&Timer{t: forever}) // sentinel
 }
 
-// Sleep pauses the current goroutine for at least ns nanoseconds.
-// Higher resolution sleeping may be provided by syscall.Nanosleep 
-// on some operating systems.
-func Sleep(ns int64) os.Error {
-       _, err := sleep(Nanoseconds(), ns)
-       return err
-}
-
-// sleep takes the current time and a duration,
-// pauses for at least ns nanoseconds, and
-// returns the current time and an error.
-func sleep(t, ns int64) (int64, os.Error) {
-       // TODO(cw): use monotonic-time once it's available
-       end := t + ns
-       for t < end {
-               errno := syscall.Sleep(end - t)
-               if errno != 0 && errno != syscall.EINTR {
-                       return 0, os.NewSyscallError("sleep", errno)
-               }
-               t = Nanoseconds()
-       }
-       return t, nil
-}
-
 // NewTimer creates a new Timer that will send
 // the current time on its channel after at least ns nanoseconds.
 func NewTimer(ns int64) *Timer {
diff --git a/src/pkg/time/sys.go b/src/pkg/time/sys.go
new file mode 100644 (file)
index 0000000..8a2e6fa
--- /dev/null
@@ -0,0 +1,54 @@
+// Copyright 2009 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package time
+
+import (
+       "os"
+       "syscall"
+)
+
+// Seconds reports the number of seconds since the Unix epoch,
+// January 1, 1970 00:00:00 UTC.
+func Seconds() int64 {
+       sec, _, err := os.Time()
+       if err != nil {
+               panic(err)
+       }
+       return sec
+}
+
+// Nanoseconds reports the number of nanoseconds since the Unix epoch,
+// January 1, 1970 00:00:00 UTC.
+func Nanoseconds() int64 {
+       sec, nsec, err := os.Time()
+       if err != nil {
+               panic(err)
+       }
+       return sec*1e9 + nsec
+}
+
+// Sleep pauses the current goroutine for at least ns nanoseconds.
+// Higher resolution sleeping may be provided by syscall.Nanosleep 
+// on some operating systems.
+func Sleep(ns int64) os.Error {
+       _, err := sleep(Nanoseconds(), ns)
+       return err
+}
+
+// sleep takes the current time and a duration,
+// pauses for at least ns nanoseconds, and
+// returns the current time and an error.
+func sleep(t, ns int64) (int64, os.Error) {
+       // TODO(cw): use monotonic-time once it's available
+       end := t + ns
+       for t < end {
+               errno := syscall.Sleep(end - t)
+               if errno != 0 && errno != syscall.EINTR {
+                       return 0, os.NewSyscallError("sleep", errno)
+               }
+               t = Nanoseconds()
+       }
+       return t, nil
+}
index 4abd112308bbfccd4d2de1d50afd8f21a63377d4..432b3523a843ce4fcd62284d6fdfd3b5961f2807 100644 (file)
@@ -6,30 +6,6 @@
 // displaying time.
 package time
 
-import (
-       "os"
-)
-
-// Seconds reports the number of seconds since the Unix epoch,
-// January 1, 1970 00:00:00 UTC.
-func Seconds() int64 {
-       sec, _, err := os.Time()
-       if err != nil {
-               panic(err)
-       }
-       return sec
-}
-
-// Nanoseconds reports the number of nanoseconds since the Unix epoch,
-// January 1, 1970 00:00:00 UTC.
-func Nanoseconds() int64 {
-       sec, nsec, err := os.Time()
-       if err != nil {
-               panic(err)
-       }
-       return sec*1e9 + nsec
-}
-
 // Days of the week.
 const (
        Sunday = iota