github.com/kaisenlinux/docker.io@v0.0.0-20230510090727-ea55db55fac7/libnetwork/cmd/dnet/dnet_windows.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	"github.com/docker/docker/pkg/signal"
     8  	"github.com/sirupsen/logrus"
     9  	"golang.org/x/sys/windows"
    10  )
    11  
    12  // Copied over from docker/daemon/debugtrap_windows.go
    13  func setupDumpStackTrap() {
    14  	go func() {
    15  		sa := windows.SecurityAttributes{
    16  			Length: 0,
    17  		}
    18  		ev, _ := windows.UTF16PtrFromString("Global\\docker-daemon-" + fmt.Sprint(os.Getpid()))
    19  		if h, _ := windows.CreateEvent(&sa, 0, 0, ev); h != 0 {
    20  			logrus.Debugf("Stackdump - waiting signal at %s", ev)
    21  			for {
    22  				windows.WaitForSingleObject(h, windows.INFINITE)
    23  				signal.DumpStacks("")
    24  			}
    25  		}
    26  	}()
    27  }