src/pkg/runtime/debug.go | 3 +++ src/pkg/runtime/proc.c | 7 +++++++ diff --git a/src/pkg/runtime/debug.go b/src/pkg/runtime/debug.go index b5f6571faa886bb004593f4da16f88a78aff1aa6..3cc5472f6b02345a96080700cefec16f942b4e47 100644 --- a/src/pkg/runtime/debug.go +++ b/src/pkg/runtime/debug.go @@ -26,6 +26,9 @@ // Cgocalls returns the number of cgo calls made by the current process. func Cgocalls() int64 +// Goroutines returns the number of goroutines that currently exist. +func Goroutines() int32 + type MemStatsType struct { // General statistics. // Not locked during update; approximate. diff --git a/src/pkg/runtime/proc.c b/src/pkg/runtime/proc.c index 31641ba982bbbd3e33771333a44440c4b6ce3c3c..ff8673a314d7f1a396734987b426e9cf35fb63f0 100644 --- a/src/pkg/runtime/proc.c +++ b/src/pkg/runtime/proc.c @@ -1192,3 +1192,10 @@ { ret = m->id; FLUSH(&ret); } + +void +runtime·Goroutines(int32 ret) +{ + ret = runtime·sched.gcount; + FLUSH(&ret); +}