github.com/brahmaroutu/docker@v1.2.1-0.20160809185609-eb28dde01f16/daemon/debugtrap_windows.go (about) 1 package daemon 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 func setupDumpStackTrap(root string) { 14 // Windows does not support signals like *nix systems. So instead of 15 // trapping on SIGUSR1 to dump stacks, we wait on a Win32 event to be 16 // signaled. 17 go func() { 18 sa := syscall.SecurityAttributes{ 19 Length: 0, 20 } 21 ev := "Global\\docker-daemon-" + fmt.Sprint(os.Getpid()) 22 if h, _ := system.CreateEvent(&sa, false, false, ev); h != 0 { 23 logrus.Debugf("Stackdump - waiting signal at %s", ev) 24 for { 25 syscall.WaitForSingleObject(h, syscall.INFINITE) 26 signal.DumpStacks(root) 27 } 28 } 29 }() 30 }