...

Text file src/runtime/testdata/testprogcgo/gprof_c.c

Documentation: runtime/testdata/testprogcgo

     1// Copyright 2021 The Go Authors. All rights reserved.
     2// Use of this source code is governed by a BSD-style
     3// license that can be found in the LICENSE file.
     4
     5// The C definitions for gprof.go. That file uses //export so
     6// it can't put function definitions in the "C" import comment.
     7
     8#include <stdint.h>
     9#include <stdlib.h>
    10
    11// Functions exported from Go.
    12extern void GoSleep();
    13
    14struct cgoContextArg {
    15	uintptr_t context;
    16};
    17
    18void gprofCgoContext(void *arg) {
    19	((struct cgoContextArg*)arg)->context = 1;
    20}
    21
    22void gprofCgoTraceback(void *arg) {
    23	// spend some time here so the P is more likely to be retaken.
    24	volatile int i;
    25	for (i = 0; i < 123456789; i++);
    26}
    27
    28void CallGoSleep() {
    29	GoSleep();
    30}

View as plain text