aboutsummaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/sys/windows/svc/event.go
diff options
context:
space:
mode:
authorStefan Majewsky <majewsky@gmx.net>2017-05-04 22:36:53 +0200
committerStefan Majewsky <majewsky@gmx.net>2017-05-04 22:36:53 +0200
commitec4270c43f1ddd37d1eb19da5db78129b93f72b7 (patch)
tree67ab3eab1e71ef1b5479f3f5a00e040b622d7191 /vendor/golang.org/x/sys/windows/svc/event.go
parentc69e9f604c47469429a6a8a27ba7ef873134e0a1 (diff)
downloadgofu-ec4270c43f1ddd37d1eb19da5db78129b93f72b7.tar.gz
add "cli" package with a Query method
Diffstat (limited to 'vendor/golang.org/x/sys/windows/svc/event.go')
-rw-r--r--vendor/golang.org/x/sys/windows/svc/event.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/golang.org/x/sys/windows/svc/event.go b/vendor/golang.org/x/sys/windows/svc/event.go
new file mode 100644
index 0000000..0508e22
--- /dev/null
+++ b/vendor/golang.org/x/sys/windows/svc/event.go
@@ -0,0 +1,48 @@
+// Copyright 2012 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build windows
+
+package svc
+
+import (
+ "errors"
+
+ "golang.org/x/sys/windows"
+)
+
+// event represents auto-reset, initially non-signaled Windows event.
+// It is used to communicate between go and asm parts of this package.
+type event struct {
+ h windows.Handle
+}
+
+func newEvent() (*event, error) {
+ h, err := windows.CreateEvent(nil, 0, 0, nil)
+ if err != nil {
+ return nil, err
+ }
+ return &event{h: h}, nil
+}
+
+func (e *event) Close() error {
+ return windows.CloseHandle(e.h)
+}
+
+func (e *event) Set() error {
+ return windows.SetEvent(e.h)
+}
+
+func (e *event) Wait() error {
+ s, err := windows.WaitForSingleObject(e.h, windows.INFINITE)
+ switch s {
+ case windows.WAIT_OBJECT_0:
+ break
+ case windows.WAIT_FAILED:
+ return err
+ default:
+ return errors.New("unexpected result from WaitForSingleObject")
+ }
+ return nil
+}