summaryrefslogtreecommitdiffhomepage
path: root/pkg/sync
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/sync')
-rw-r--r--pkg/sync/wait.go58
1 files changed, 0 insertions, 58 deletions
diff --git a/pkg/sync/wait.go b/pkg/sync/wait.go
deleted file mode 100644
index f8e7742a5..000000000
--- a/pkg/sync/wait.go
+++ /dev/null
@@ -1,58 +0,0 @@
-// Copyright 2021 The gVisor 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 sync
-
-// WaitGroupErr is similar to WaitGroup but allows goroutines to report error.
-// Only the first error is retained and reported back.
-//
-// Example usage:
-// wg := WaitGroupErr{}
-// wg.Add(1)
-// go func() {
-// defer wg.Done()
-// if err := ...; err != nil {
-// wg.ReportError(err)
-// return
-// }
-// }()
-// return wg.Error()
-//
-type WaitGroupErr struct {
- WaitGroup
-
- // mu protects firstErr.
- mu Mutex
-
- // firstErr holds the first error reported. nil is no error occurred.
- firstErr error
-}
-
-// ReportError reports an error. Note it does not call Done().
-func (w *WaitGroupErr) ReportError(err error) {
- w.mu.Lock()
- defer w.mu.Unlock()
- if w.firstErr == nil {
- w.firstErr = err
- }
-}
-
-// Error waits for the counter to reach 0 and returns the first reported error
-// if any.
-func (w *WaitGroupErr) Error() error {
- w.Wait()
- w.mu.Lock()
- defer w.mu.Unlock()
- return w.firstErr
-}