MCPcopy
hub / github.com/grpc/grpc-go / CheckAsyncReporters

Function CheckAsyncReporters

internal/leakcheck/leakcheck.go:467–489  ·  view source on GitHub ↗

CheckAsyncReporters verifies that no leaks exist and restores the default delegate.

(logger Logger)

Source from the content-addressed store, hash-verified

465
466// CheckAsyncReporters verifies that no leaks exist and restores the default delegate.
467func CheckAsyncReporters(logger Logger) {
468 // Restore the delegate: Reset to the default pass-through behavior.
469 internal.AsyncReporterCleanupDelegate = func(cleanup func()) func() {
470 return cleanup
471 }
472
473 if asyncReporterTracker == nil {
474 return
475 }
476
477 leaks := asyncReporterTracker.leakedStackTraces()
478 if len(leaks) > 0 {
479 // Join all stack traces into one message
480 allTraces := ""
481 for _, trace := range leaks {
482 allTraces += trace
483 }
484 logger.Errorf("Found %d leaked async reporters:%s", len(leaks), allTraces)
485 }
486
487 // Clean up global state
488 asyncReporterTracker = nil
489}

Callers 3

TeardownMethod · 0.92

Calls 2

leakedStackTracesMethod · 0.80
ErrorfMethod · 0.65

Tested by 2