libgo: Always initialize semaphores.
2011-04-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> PR go/48222 * runtime/malloc.goc (runtime_mallocinit): Call runtime_Mprof_Init, runtime_initfintab. * runtime/cpuprof.c (runtime_cpuprofinit): New function. * runtime/runtime.h (runtime_cpuprofinit): Declare it. * runtime/go-main.c (main): Use it. From-SVN: r171960
This commit is contained in:
parent
9403944776
commit
06ec98415a
4 changed files with 14 additions and 0 deletions
|
@ -114,6 +114,12 @@ static void add(Profile*, uintptr*, int32);
|
|||
static bool evict(Profile*, Entry*);
|
||||
static bool flushlog(Profile*);
|
||||
|
||||
void
|
||||
runtime_cpuprofinit(void)
|
||||
{
|
||||
runtime_initlock(&lk);
|
||||
}
|
||||
|
||||
// LostProfileData is a no-op function used in profiles
|
||||
// to mark the number of profiling stack traces that were
|
||||
// discarded due to slow data writers.
|
||||
|
|
|
@ -48,6 +48,7 @@ main (int argc, char **argv)
|
|||
struct __go_string *values;
|
||||
|
||||
runtime_mallocinit ();
|
||||
runtime_cpuprofinit ();
|
||||
__go_gc_goroutine_init (&argc);
|
||||
|
||||
Args.__count = argc;
|
||||
|
|
|
@ -350,6 +350,12 @@ runtime_mallocinit(void)
|
|||
runtime_MHeap_Init(&runtime_mheap, runtime_SysAlloc);
|
||||
m->mcache = runtime_allocmcache();
|
||||
|
||||
// Initialize malloc profiling.
|
||||
runtime_Mprof_Init();
|
||||
|
||||
// Initialize finalizer.
|
||||
runtime_initfintab();
|
||||
|
||||
// See if it works.
|
||||
runtime_free(runtime_malloc(1));
|
||||
}
|
||||
|
|
|
@ -189,6 +189,7 @@ void runtime_walkfintab(void (*fn)(void*), void (*scan)(byte *, int64));
|
|||
#define runtime_casp(pval, old, new) __sync_bool_compare_and_swap (pval, old, new)
|
||||
|
||||
void runtime_sigprof(uint8 *pc, uint8 *sp, uint8 *lr);
|
||||
void runtime_cpuprofinit(void);
|
||||
void runtime_resetcpuprofiler(int32);
|
||||
void runtime_setcpuprofilerate(void(*)(uintptr*, int32), int32);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue