blob: 33f7ba7a45ec9a626e2ccaf7939eb33baeb4420b [file] [log] [blame] [edit]
// Copyright 2025 The Go Authors. All rights reserved.
// Use of this source code is governed by a MIT
// license that can be found in the LICENSE file.
package main
import (
"os"
"runtime"
"runtime/pprof"
"sync"
)
func init() {
register("Cockroach584", Cockroach584)
}
type gossip_cockroach584 struct {
mu sync.Mutex // L1
closed bool
}
func (g *gossip_cockroach584) bootstrap() {
for {
g.mu.Lock()
if g.closed {
// Missing g.mu.Unlock
break
}
g.mu.Unlock()
}
}
func (g *gossip_cockroach584) manage() {
for {
g.mu.Lock()
if g.closed {
// Missing g.mu.Unlock
break
}
g.mu.Unlock()
}
}
func Cockroach584() {
prof := pprof.Lookup("goroutineleak")
defer func() {
for i := 0; i < yieldCount; i++ {
// Yield several times to allow the child goroutine to run.
runtime.Gosched()
}
prof.WriteTo(os.Stdout, 2)
}()
g := &gossip_cockroach584{
closed: true,
}
go func() { // G1
g.bootstrap()
g.manage()
}()
}