251
|
1 |
// Copyright 2019 The Go Authors. All rights reserved. |
|
2 |
// Use of this source code is governed by a BSD-style |
|
3 |
// license that can be found in the LICENSE file. |
|
4 |
|
|
5 |
// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris |
|
6 |
|
|
7 |
package unix |
|
8 |
|
|
9 |
// Set adds fd to the set fds. |
|
10 |
func (fds *FdSet) Set(fd int) { |
|
11 |
fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS)) |
|
12 |
} |
|
13 |
|
|
14 |
// Clear removes fd from the set fds. |
|
15 |
func (fds *FdSet) Clear(fd int) { |
|
16 |
fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS)) |
|
17 |
} |
|
18 |
|
|
19 |
// IsSet returns whether fd is in the set fds. |
|
20 |
func (fds *FdSet) IsSet(fd int) bool { |
|
21 |
return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0 |
|
22 |
} |
|
23 |
|
|
24 |
// Zero clears the set fds. |
|
25 |
func (fds *FdSet) Zero() { |
|
26 |
for i := range fds.Bits { |
|
27 |
fds.Bits[i] = 0 |
|
28 |
} |
|
29 |
} |