diff options
Diffstat (limited to 'go/vendor/google.golang.org/grpc/internal/grpcsync/event.go')
-rw-r--r-- | go/vendor/google.golang.org/grpc/internal/grpcsync/event.go | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/go/vendor/google.golang.org/grpc/internal/grpcsync/event.go b/go/vendor/google.golang.org/grpc/internal/grpcsync/event.go deleted file mode 100644 index 85dbea8..0000000 --- a/go/vendor/google.golang.org/grpc/internal/grpcsync/event.go +++ /dev/null @@ -1,61 +0,0 @@ -/* - * - * Copyright 2018 gRPC authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// Package grpcsync implements additional synchronization primitives built upon -// the sync package. -package grpcsync - -import "sync" - -// Event represents a one-time event that may occur in the future. -type Event struct { - c chan struct{} - o sync.Once -} - -// Fire causes e to complete. It is safe to call multiple times, and -// concurrently. It returns true iff this call to Fire caused the signaling -// channel returned by Done to close. -func (e *Event) Fire() bool { - ret := false - e.o.Do(func() { - close(e.c) - ret = true - }) - return ret -} - -// Done returns a channel that will be closed when Fire is called. -func (e *Event) Done() <-chan struct{} { - return e.c -} - -// HasFired returns true if Fire has been called. -func (e *Event) HasFired() bool { - select { - case <-e.c: - return true - default: - return false - } -} - -// NewEvent returns a new, ready-to-use Event. -func NewEvent() *Event { - return &Event{c: make(chan struct{})} -} |