OSDN Git Service

add package
[bytom/vapor.git] / vendor / github.com / hashicorp / go-plugin / process_windows.go
diff --git a/vendor/github.com/hashicorp/go-plugin/process_windows.go b/vendor/github.com/hashicorp/go-plugin/process_windows.go
new file mode 100644 (file)
index 0000000..9f7b018
--- /dev/null
@@ -0,0 +1,29 @@
+package plugin
+
+import (
+       "syscall"
+)
+
+const (
+       // Weird name but matches the MSDN docs
+       exit_STILL_ACTIVE = 259
+
+       processDesiredAccess = syscall.STANDARD_RIGHTS_READ |
+               syscall.PROCESS_QUERY_INFORMATION |
+               syscall.SYNCHRONIZE
+)
+
+// _pidAlive tests whether a process is alive or not
+func _pidAlive(pid int) bool {
+       h, err := syscall.OpenProcess(processDesiredAccess, false, uint32(pid))
+       if err != nil {
+               return false
+       }
+
+       var ec uint32
+       if e := syscall.GetExitCodeProcess(h, &ec); e != nil {
+               return false
+       }
+
+       return ec == exit_STILL_ACTIVE
+}