]> Cypherpunks repositories - gostls13.git/commitdiff
slightly gratuitous reorg of scheduler code
authorRuss Cox <rsc@golang.org>
Sun, 3 Aug 2008 05:34:04 +0000 (22:34 -0700)
committerRuss Cox <rsc@golang.org>
Sun, 3 Aug 2008 05:34:04 +0000 (22:34 -0700)
* rename select (very loaded word) nextgoroutine
* separate out "enter scheduler" (sys·gosched)
  from the scheduler itself (scheduler)

R=r
APPROVED=r
DELTA=36  (17 added, 15 deleted, 4 changed)
OCL=13772
CL=13774

src/runtime/proc.c

index bef497c9a7252b38b9bf3594c555c914ae2aff4a..232ee1b03c616e5052a236fa7bb790dcf257aac8 100644 (file)
@@ -90,7 +90,7 @@ tracebackothers(G *me)
 }
 
 G*
-select(void)
+nextgoroutine(void)
 {
        G *gp;
 
@@ -114,34 +114,36 @@ select(void)
 }
 
 void
-gom0init(void)
-{
-       gosave(&m->sched);
-       sys·gosched();
-}
-
-void
-sys·gosched(void)
+scheduler(void)
 {
        G* gp;
-
-       if(g != m->g0) {
-               if(gosave(&g->sched))
-                       return;
-               g = m->g0;
-               gogo(&m->sched);
-       }
-       gp = select();
+       
+       gosave(&m->sched);
+       gp = nextgoroutine();
        if(gp == nil) {
 //             prints("sched: no more work\n");
                sys·exit(0);
        }
-
        m->curg = gp;
        g = gp;
        gogo(&gp->sched);
 }
 
+void
+gom0init(void)
+{
+       scheduler();
+}
+
+void
+sys·gosched(void)
+{
+       if(gosave(&g->sched))
+               return;
+       g = m->g0;
+       gogo(&m->sched);
+}
+
 //
 // the calling sequence for a routine that
 // needs N bytes stack, A args.