diff options
Diffstat (limited to 'src/runtime/testdata/testprogcgo/threadpprof.go')
| -rw-r--r-- | src/runtime/testdata/testprogcgo/threadpprof.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/runtime/testdata/testprogcgo/threadpprof.go b/src/runtime/testdata/testprogcgo/threadpprof.go index f057d591c3..81965831a7 100644 --- a/src/runtime/testdata/testprogcgo/threadpprof.go +++ b/src/runtime/testdata/testprogcgo/threadpprof.go @@ -53,6 +53,18 @@ void pprofCgoThreadTraceback(void* parg) { int getCPUHogThreadCount() { return __sync_add_and_fetch(&cpuHogThreadCount, 0); } + +static void* cpuHogDriver(void* arg __attribute__ ((unused))) { + while (1) { + cpuHogThread(); + } + return 0; +} + +void runCPUHogThread() { + pthread_t tid; + pthread_create(&tid, 0, cpuHogDriver, 0); +} */ import "C" @@ -84,6 +96,8 @@ func CgoPprofThread() { os.Exit(2) } + C.runCPUHogThread() + t0 := time.Now() for C.getCPUHogThreadCount() < 2 && time.Since(t0) < time.Second { time.Sleep(100 * time.Millisecond) |
