daemon/debugtrap_windows.go
f4b08c7f
 package daemon
 
 import (
 	"fmt"
 	"os"
 	"syscall"
 
 	"github.com/Sirupsen/logrus"
59d88785
 	"github.com/docker/docker/pkg/signal"
f4b08c7f
 	"github.com/docker/docker/pkg/system"
 )
 
 func setupDumpStackTrap() {
 	// Windows does not support signals like *nix systems. So instead of
 	// trapping on SIGUSR1 to dump stacks, we wait on a Win32 event to be
927b334e
 	// signaled.
f4b08c7f
 	go func() {
 		sa := syscall.SecurityAttributes{
 			Length: 0,
 		}
 		ev := "Global\\docker-daemon-" + fmt.Sprint(os.Getpid())
 		if h, _ := system.CreateEvent(&sa, false, false, ev); h != 0 {
 			logrus.Debugf("Stackdump - waiting signal at %s", ev)
 			for {
 				syscall.WaitForSingleObject(h, syscall.INFINITE)
59d88785
 				signal.DumpStacks()
f4b08c7f
 			}
 		}
 	}()
 }