On Fri, Mar 8, 2019 at 1:01 PM Robert Engels <reng...@ix.netcom.com> wrote:

> The other package is closing stdin....
>

Or consuming the stdin data. Which in my experience is a slightly more
likely explanation.

On Mar 8, 2019, at 2:43 PM, Everton Marques <everton.marq...@gmail.com>
> wrote:
>
> I am debugging an issue that randomly makes the code below to hit io.EOF
> instead of reporting first byte 'u' from "ugh":
>
> $ echo "ugh" | eraseme ;# this randomly reports EOF instead of first byte
> 'u' from "ugh"
>
> $ more eraseme/main.go
> // (snip)
> func main() {
>         input := bufio.NewReader(os.Stdin)
>         b, err := input.ReadByte()
>         log.Printf("byte='%c' error=%v", b, err)
>         if err != nil {
>                 os.Exit(1)
>         }
> }
>
> I suspect the offending code is a variable initialization from an imported
> package:
>
> var Result = newResult() // in imported package
>
> I can suppress the race by not importing that package or by turning
> newResult() into a no-op function.
>
> However, all newResult() does it to allocate/initialize variables and
> log.Printf() messages.
>
> I fail to see how newResult() could directly affect reading from os.Stdin.
>
> Question: Can anyone figure out how initialization timing (?) would insert
> io.EOF in the stream created by bufio.NewReader(os.Stdin) ?
>
> System is: go version go1.12 linux/amd64
>
> The code does NOT launch any goroutine.
>
> Thanks,
> Everton
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>


-- 
Kurtis Rader
Caretaker of the exceptional canines Junior and Hank

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to