aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra Umiker <cat@ophivana.moe>2024-12-18 17:20:01 +0900
committerOphestra Umiker <cat@ophivana.moe>2024-12-18 17:20:01 +0900
commit7f29b37a32a2214d4f025f31bbf9ab9f86fa3eac (patch)
treee91ea286276612787a1ac50ef46f12562074bccf /internal
parentf69e8e753e12d086f77ebf8b8506f2a91e7c8c1c (diff)
proc: setup payload send
Generic setup payload encoder adapted from fshim. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
Diffstat (limited to 'internal')
-rw-r--r--internal/proc/fd.go10
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