aboutsummaryrefslogtreecommitdiff
path: root/src/pkg/runtime/proc.c
diff options
context:
space:
mode:
authorSanjay Menakuru <balasanjay@gmail.com>2014-08-26 09:01:52 +0400
committerDmitriy Vyukov <dvyukov@google.com>2014-08-26 09:01:52 +0400
commit90653d7864818ebfc3a71eaf11c6ee9cdc7c1609 (patch)
tree778af7f80700681afcf6eb434fd366b2476b7832 /src/pkg/runtime/proc.c
parent32c0dce00ea2b641a6b2731aa2a149f4270ba663 (diff)
downloadgo-90653d7864818ebfc3a71eaf11c6ee9cdc7c1609.tar.xz
runtime,sync: Convert procPin and procUnpin functions to Go.
LGTM=dvyukov R=golang-codereviews, dvyukov CC=golang-codereviews, khr https://golang.org/cl/132880043
Diffstat (limited to 'src/pkg/runtime/proc.c')
-rw-r--r--src/pkg/runtime/proc.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/pkg/runtime/proc.c b/src/pkg/runtime/proc.c
index 483903d6d9..1f687ebc92 100644
--- a/src/pkg/runtime/proc.c
+++ b/src/pkg/runtime/proc.c
@@ -3292,3 +3292,23 @@ haveexperiment(int8 *name)
}
return 0;
}
+
+#pragma textflag NOSPLIT
+void
+sync·runtime_procPin(intptr p)
+{
+ M *mp;
+
+ mp = g->m;
+ // Disable preemption.
+ mp->locks++;
+ p = mp->p->id;
+ FLUSH(&p);
+}
+
+#pragma textflag NOSPLIT
+void
+sync·runtime_procUnpin()
+{
+ g->m->locks--;
+}