aboutsummaryrefslogtreecommitdiff
path: root/libgo/runtime
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2012-06-25 16:20:03 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2012-06-25 16:20:03 +0000
commit08a680a8879ce9da16d808644730f7cfacaf667f (patch)
tree5dfe28c3f573ae57b971ed4d9a1c99a76f0a70c4 /libgo/runtime
parent72de8622ae2d5aaeb58173f454aed87640a989b5 (diff)
downloadgcc-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.goc1
-rw-r--r--libgo/runtime/mfinal.c3
-rw-r--r--libgo/runtime/mgc0.c1
-rw-r--r--libgo/runtime/time.goc10
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();
}