aboutsummaryrefslogtreecommitdiffhomepage
path: root/seccomp/export.go
diff options
context:
space:
mode:
Diffstat (limited to 'seccomp/export.go')
-rw-r--r--seccomp/export.go58
1 files changed, 0 insertions, 58 deletions
diff --git a/seccomp/export.go b/seccomp/export.go
deleted file mode 100644
index 95684235..00000000
--- a/seccomp/export.go
+++ /dev/null
@@ -1,58 +0,0 @@
-package seccomp
-
-import (
- "os"
- "runtime"
- "sync"
-)
-
-type exporter struct {
- opts SyscallOpts
- r, w *os.File
-
- prepareOnce sync.Once
- prepareErr error
- closeOnce sync.Once
- closeErr error
- exportErr <-chan error
-}
-
-func (e *exporter) prepare() error {
- e.prepareOnce.Do(func() {
- if r, w, err := os.Pipe(); err != nil {
- e.prepareErr = err
- return
- } else {
- e.r, e.w = r, w
- }
-
- ec := make(chan error, 1)
- go func(fd uintptr) {
- ec <- buildFilter(int(fd), e.opts)
- close(ec)
- _ = e.closeWrite()
- runtime.KeepAlive(e.w)
- }(e.w.Fd())
- e.exportErr = ec
- runtime.SetFinalizer(e, (*exporter).closeWrite)
- })
- return e.prepareErr
-}
-
-func (e *exporter) closeWrite() error {
- e.closeOnce.Do(func() {
- if e.w == nil {
- panic("closeWrite called on invalid exporter")
- }
- e.closeErr = e.w.Close()
-
- // no need for a finalizer anymore
- runtime.SetFinalizer(e, nil)
- })
-
- return e.closeErr
-}
-
-func newExporter(opts SyscallOpts) *exporter {
- return &exporter{opts: opts}
-}