• Russ Cox's avatar
    runtime: add timer support, use for package time · 3b860269
    Russ Cox authored
    This looks like it is just moving some code from
    time to runtime (and translating it to C), but the
    runtime can do a better job managing the goroutines,
    and it needs this functionality for its own maintenance
    (for example, for the garbage collector to hand back
    unused memory to the OS on a time delay).
    Might as well have just one copy of the timer logic,
    and runtime can't depend on time, so vice versa.
    
    It also unifies Sleep, NewTicker, and NewTimer behind
    one mechanism, so that there are no claims that one
    is more efficient than another.  (For example, today
    people recommend using time.After instead of time.Sleep
    to avoid blocking an OS thread.)
    
    Fixes #1644.
    Fixes #1731.
    Fixes #2190.
    
    R=golang-dev, r, hectorchu, iant, iant, jsing, alex.brainman, dvyukov
    CC=golang-dev
    https://golang.org/cl/5334051
    3b860269
Name
Last commit
Last update
..
386 Loading commit data...
amd64 Loading commit data...
arm Loading commit data...
cgo Loading commit data...
darwin Loading commit data...
debug Loading commit data...
freebsd Loading commit data...
linux Loading commit data...
openbsd Loading commit data...
plan9 Loading commit data...
pprof Loading commit data...
windows Loading commit data...
Makefile Loading commit data...
append_test.go Loading commit data...
cgocall.c Loading commit data...
cgocall.h Loading commit data...
chan.c Loading commit data...
chan_test.go Loading commit data...
closure_test.go Loading commit data...
complex.c Loading commit data...
cpuprof.c Loading commit data...
debug.go Loading commit data...
error.go Loading commit data...
export_test.go Loading commit data...
extern.go Loading commit data...
float.c Loading commit data...
gc_test.go Loading commit data...
goc2c.c Loading commit data...
hashmap.c Loading commit data...
hashmap.h Loading commit data...
iface.c Loading commit data...
lock_futex.c Loading commit data...
lock_sema.c Loading commit data...
malloc.goc Loading commit data...
malloc.h Loading commit data...
mcache.c Loading commit data...
mcentral.c Loading commit data...
mem.go Loading commit data...
mfinal.c Loading commit data...
mfinal_test.go Loading commit data...
mfixalloc.c Loading commit data...
mgc0.c Loading commit data...
mheap.c Loading commit data...
mkasmh.sh Loading commit data...
mkgodefs.sh Loading commit data...
mkversion.c Loading commit data...
mprof.goc Loading commit data...
msize.c Loading commit data...
print.c Loading commit data...
proc.c Loading commit data...
proc.p Loading commit data...
proc_test.go Loading commit data...
rune.c Loading commit data...
runtime-gdb.py Loading commit data...
runtime.c Loading commit data...
runtime.h Loading commit data...
runtime1.goc Loading commit data...
sema.goc Loading commit data...
sema_test.go Loading commit data...
sig.go Loading commit data...
sigqueue.goc Loading commit data...
slice.c Loading commit data...
softfloat64.go Loading commit data...
softfloat64_test.go Loading commit data...
stack.h Loading commit data...
string.goc Loading commit data...
symtab.c Loading commit data...
symtab_test.go Loading commit data...
syscall_windows_test.go Loading commit data...
time.goc Loading commit data...
type.go Loading commit data...
type.h Loading commit data...