github.com/zhuohuang-hust/src-cbuild@v0.0.0-20230105071821-c7aab3e7c840/mergeCode/libnetwork/cmd/dnet/dnet_windows.go (about)

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