Skip to content

Instantly share code, notes, and snippets.

@tklauser
Created September 23, 2019 14:37
Show Gist options
  • Save tklauser/0c05b88de7988ab0c46b4d55306b7830 to your computer and use it in GitHub Desktop.
Save tklauser/0c05b88de7988ab0c46b4d55306b7830 to your computer and use it in GitHub Desktop.
TestSelect
rr, ww, err := os.Pipe()
if err != nil {
t.Fatal(err)
}
defer rr.Close()
defer ww.Close()
if _, err := ww.Write([]byte("HELLO GOPHER")); err != nil {
t.Fatal(err)
}
rFdSet := &unix.FdSet{}
fd := rr.Fd()
// FD_SET(fd, rFdSet)
rFdSet.Bits[fd/unix.NFDBITS] |= (1 << (fd % unix.NFDBITS))
n, err = unix.Select(int(fd+1), rFdSet, nil, nil, nil)
if err != nil {
t.Fatalf("Select: %v", err)
}
if n != 1 {
t.Fatalf("Select: expected 1 ready file descriptors, got %v", n)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment