MCPcopy
hub / github.com/tinygo-org/tinygo / flush

Method flush

main.go:2219–2253  ·  view source on GitHub ↗

flush the output to stdout and stderr. This waits until done is closed.

(stdout, stderr io.Writer)

Source from the content-addressed store, hash-verified

2217// flush the output to stdout and stderr.
2218// This waits until done is closed.
2219func (b *testOutputBuf) flush(stdout, stderr io.Writer) error {
2220 b.mu.Lock()
2221
2222 var err error
2223 b.stdout = stdout
2224 b.stderr = stderr
2225 for _, e := range b.output {
2226 var w io.Writer
2227 var errDst *error
2228 if e.stderr {
2229 w = stderr
2230 errDst = &b.errerr
2231 } else {
2232 w = stdout
2233 errDst = &b.outerr
2234 }
2235 if *errDst != nil {
2236 continue
2237 }
2238
2239 _, werr := w.Write(e.data)
2240 if werr != nil {
2241 if err == nil {
2242 err = werr
2243 }
2244 *errDst = err
2245 }
2246 }
2247
2248 b.mu.Unlock()
2249
2250 <-b.done
2251
2252 return err
2253}
2254
2255// testStdout writes stdout from a test to the output buffer.
2256type testStdout testOutputBuf

Callers 1

mainFunction · 0.45

Calls 3

WriteMethod · 0.95
LockMethod · 0.65
UnlockMethod · 0.65

Tested by

no test coverage detected