summaryrefslogtreecommitdiff
path: root/src/pkg/runtime/chan.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2010-08-03 01:07:57 -0700
committerRuss Cox <rsc@golang.org>2010-08-03 01:07:57 -0700
commit545d7a95311de475edb11ce92b848ed28e451c49 (patch)
treec66b921451129667a006fdf788c07681e7cf0180 /src/pkg/runtime/chan.c
parent63796575378823bb31fbe99079fc9438958b8bca (diff)
downloadgo-545d7a95311de475edb11ce92b848ed28e451c49.tar.gz
gc: empty select
R=ken2 CC=golang-dev http://codereview.appspot.com/1871057
Diffstat (limited to 'src/pkg/runtime/chan.c')
-rw-r--r--src/pkg/runtime/chan.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/pkg/runtime/chan.c b/src/pkg/runtime/chan.c
index 9e88e824a..16c02e8e7 100644
--- a/src/pkg/runtime/chan.c
+++ b/src/pkg/runtime/chan.c
@@ -631,9 +631,11 @@ void
printf("select: sel=%p\n", sel);
if(sel->ncase < 2) {
- if(sel->ncase < 1)
- throw("select: no cases");
- // make special case of one.
+ if(sel->ncase < 1) {
+ g->status = Gwaiting; // forever
+ gosched();
+ }
+ // TODO: make special case of one.
}
// select a (relative) prime