PLT-7407: Back-end plugin mechanism (#7177)
* begin backend plugin wip * flesh out rpcplugin. everything done except for minor supervisor stubs * done with basic plugin infrastructure * simplify tests * remove unused test lines
Этот коммит содержится в:
23
plugin/rpcplugin/process.go
Обычный файл
23
plugin/rpcplugin/process.go
Обычный файл
@@ -0,0 +1,23 @@
|
||||
package rpcplugin
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
)
|
||||
|
||||
type Process interface {
|
||||
// Waits for the process to exit and returns an error if a problem occurred or the process exited
|
||||
// with a non-zero status.
|
||||
Wait() error
|
||||
}
|
||||
|
||||
// NewProcess launches an RPC executable in a new process and returns an IPC that can be used to
|
||||
// communicate with it.
|
||||
func NewProcess(ctx context.Context, path string) (Process, io.ReadWriteCloser, error) {
|
||||
return newProcess(ctx, path)
|
||||
}
|
||||
|
||||
// When called on a process launched with NewProcess, returns the inherited IPC.
|
||||
func InheritedProcessIPC() (io.ReadWriteCloser, error) {
|
||||
return inheritedProcessIPC()
|
||||
}
|
||||
Ссылка в новой задаче
Block a user