Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New client option DisableLogStderr to disable expensive log stderr from subprocess #316

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions client.go
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,11 @@ type ClientConfig struct {
// This isn't the output of synced stderr.
Stderr io.Writer

// DisableLogStderr discards anything streamed from os.Stderr of the subprocess.
// This won't impact the synced stderr though.
// The main purpose is to reduce performance consumption when working with a wordy provider.
DisableLogStderr bool

// SyncStdout, SyncStderr can be set to override the
// respective os.Std* values in the plugin. Care should be taken to
// avoid races here. If these are nil, then this will be set to
Expand Down Expand Up @@ -1178,6 +1183,10 @@ func (c *Client) logStderr(name string, r io.Reader) {
return
}

if c.config.DisableLogStderr {
continue
}

c.config.Stderr.Write(line)

// The line was longer than our max token size, so it's likely
Expand Down