// now that gc is done, kick off finalizer thread if needed
if !concurrentSweep {
// give the queued finalizers, if any, a chance to run
- gosched()
+ Gosched()
}
}
for {
for gosweepone() != ^uintptr(0) {
sweep.nbgsweep++
- gosched()
+ Gosched()
}
lock(&gclock)
if !gosweepdone() {
schedule();
}
-// Scheduler yield.
-#pragma textflag NOSPLIT
-void
-runtime·gosched(void)
-{
- void (*fn)(G*);
-
- fn = runtime·gosched_m;
- runtime·mcall(&fn);
-}
-
-// runtime·gosched continuation on g0.
+// Gosched continuation on g0.
void
runtime·gosched_m(G *gp)
{
void runtime·newextram(void);
void runtime·exit(int32);
void runtime·breakpoint(void);
-void runtime·gosched(void);
void runtime·gosched_m(G*);
void runtime·schedtrace(bool);
void runtime·park(bool(*)(G*, void*), void*, String);
//go:noescape
func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr)
-func gosched()
func starttheworld()
func stoptheworld()
func newextram()