diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-06-25 16:20:03 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-06-25 16:20:03 +0000 |
commit | 08a680a8879ce9da16d808644730f7cfacaf667f (patch) | |
tree | 5dfe28c3f573ae57b971ed4d9a1c99a76f0a70c4 /libgo/runtime | |
parent | 72de8622ae2d5aaeb58173f454aed87640a989b5 (diff) | |
download | gcc-08a680a8879ce9da16d808644730f7cfacaf667f.zip gcc-08a680a8879ce9da16d808644730f7cfacaf667f.tar.gz gcc-08a680a8879ce9da16d808644730f7cfacaf667f.tar.bz2 |
libgo: Update to Go 1.0.2 release.
From-SVN: r188943
Diffstat (limited to 'libgo/runtime')
-rw-r--r-- | libgo/runtime/malloc.goc | 1 | ||||
-rw-r--r-- | libgo/runtime/mfinal.c | 3 | ||||
-rw-r--r-- | libgo/runtime/mgc0.c | 1 | ||||
-rw-r--r-- | libgo/runtime/time.goc | 10 |
4 files changed, 10 insertions, 5 deletions
diff --git a/libgo/runtime/malloc.goc b/libgo/runtime/malloc.goc index 1a40637..eb16346 100644 --- a/libgo/runtime/malloc.goc +++ b/libgo/runtime/malloc.goc @@ -168,6 +168,7 @@ __go_free(void *v) c->local_by_size[sizeclass].nfree++; runtime_MCache_Free(c, v, sizeclass, size); } + c->local_nfree++; c->local_alloc -= size; if(prof) runtime_MProf_Free(v, size); diff --git a/libgo/runtime/mfinal.c b/libgo/runtime/mfinal.c index a890037..e52ae3b 100644 --- a/libgo/runtime/mfinal.c +++ b/libgo/runtime/mfinal.c @@ -150,8 +150,7 @@ runtime_addfinalizer(void *p, void (*f)(void*), const struct __go_func_type *ft) tab = TAB(p); runtime_lock(tab); if(f == nil) { - if(lookfintab(tab, p, true, nil)) - runtime_setblockspecial(p, false); + lookfintab(tab, p, true, nil); runtime_unlock(tab); return true; } diff --git a/libgo/runtime/mgc0.c b/libgo/runtime/mgc0.c index bd5eedc..d35cc0f 100644 --- a/libgo/runtime/mgc0.c +++ b/libgo/runtime/mgc0.c @@ -1132,7 +1132,6 @@ runfinq(void* dummy __attribute__ ((unused))) f = &fb->fin[i]; params[0] = &f->arg; - runtime_setblockspecial(f->arg, false); reflect_call(f->ft, (void*)f->fn, 0, 0, params, nil); f->fn = nil; f->arg = nil; diff --git a/libgo/runtime/time.goc b/libgo/runtime/time.goc index cae15e5..b3f0fb0 100644 --- a/libgo/runtime/time.goc +++ b/libgo/runtime/time.goc @@ -61,15 +61,21 @@ ready(int64 now, Eface e) void runtime_tsleep(int64 ns) { + G* g; Timer t; - if(ns <= 0) + g = runtime_g(); + + if(ns <= 0) { + g->status = Grunning; + g->waitreason = nil; return; + } t.when = runtime_nanotime() + ns; t.period = 0; t.f = ready; - t.arg.__object = runtime_g(); + t.arg.__object = g; addtimer(&t); runtime_gosched(); } |