diff options
| author | Ophestra Umiker <cat@ophivana.moe> | 2024-12-18 17:20:01 +0900 |
|---|---|---|
| committer | Ophestra Umiker <cat@ophivana.moe> | 2024-12-18 17:20:01 +0900 |
| commit | 7f29b37a32a2214d4f025f31bbf9ab9f86fa3eac (patch) | |
| tree | e91ea286276612787a1ac50ef46f12562074bccf | |
| parent | f69e8e753e12d086f77ebf8b8506f2a91e7c8c1c (diff) | |
proc: setup payload send
Generic setup payload encoder adapted from fshim.
Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
| -rw-r--r-- | internal/proc/fd.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/internal/proc/fd.go b/internal/proc/fd.go index 1d63427b..5400abe9 100644 --- a/internal/proc/fd.go +++ b/internal/proc/fd.go @@ -12,6 +12,16 @@ var ( ErrInvalid = errors.New("bad file descriptor") ) +func Setup(extraFiles *[]*os.File) (int, *gob.Encoder, error) { + if r, w, err := os.Pipe(); err != nil { + return -1, nil, err + } else { + fd := 3 + len(*extraFiles) + *extraFiles = append(*extraFiles, r) + return fd, gob.NewEncoder(w), nil + } +} + func Receive(key string, e any) (func() error, error) { var setup *os.File |
