summaryrefslogtreecommitdiff
path: root/src/util/util_windows.go
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2018-09-27 15:27:08 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2018-09-28 10:33:52 +0900
commit0d748a0699760003444efca219eb4bb245996008 (patch)
tree791e4849d9bdfb06d013dac96c2197fa2739c0e5 /src/util/util_windows.go
parent27c40dc6b0cc0402b1602b76202be80841329a1d (diff)
downloadfzf-0d748a0699760003444efca219eb4bb245996008.tar.gz
Kill running preview process after 500ms when focus has changed
Close #1383 Close #1384
Diffstat (limited to 'src/util/util_windows.go')
-rw-r--r--src/util/util_windows.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/util/util_windows.go b/src/util/util_windows.go
index 41a9a5c7..51715cd8 100644
--- a/src/util/util_windows.go
+++ b/src/util/util_windows.go
@@ -10,13 +10,15 @@ import (
)
// ExecCommand executes the given command with cmd
-func ExecCommand(command string) *exec.Cmd {
+func ExecCommand(command string, setpgid bool) *exec.Cmd {
return ExecCommandWith("cmd", command)
}
// ExecCommandWith executes the given command with cmd. _shell parameter is
// ignored on Windows.
-func ExecCommandWith(_shell string, command string) *exec.Cmd {
+// FIXME: setpgid is unused. We set it in the Unix implementation so that we
+// can kill preview process with its child processes at once.
+func ExecCommandWith(_shell string, command string, setpgid bool) *exec.Cmd {
cmd := exec.Command("cmd")
cmd.SysProcAttr = &syscall.SysProcAttr{
HideWindow: false,
@@ -26,12 +28,17 @@ func ExecCommandWith(_shell string, command string) *exec.Cmd {
return cmd
}
+// KillCommand kills the process for the given command
+func KillCommand(cmd *exec.Cmd) error {
+ return cmd.Process.Kill()
+}
+
// IsWindows returns true on Windows
func IsWindows() bool {
return true
}
-// SetNonBlock executes syscall.SetNonblock on file descriptor
+// SetNonblock executes syscall.SetNonblock on file descriptor
func SetNonblock(file *os.File, nonblock bool) {
syscall.SetNonblock(syscall.Handle(file.Fd()), nonblock)
}