Package-Level Type Names (total 4, in which 2 are exported)
/* sort exporteds by: | */
DeadlineExceededError is returned for an expired deadline.
Implement the net.Error interface.
The string is "i/o timeout" because that is what was returned
by earlier Go versions. Changing it may break programs that
match on error strings.
(*T) Temporary() bool(*T) Timeout() bool
*T : error
*T : net.Error
*T : net.temporary
*T : net.timeout
*T : os.timeout
FD is a file descriptor. The net and os packages use this type as a
field of a larger type representing a network connection or OS file.
Whether this is a streaming descriptor, as opposed to a
packet-based descriptor like a UDP socket. Immutable.
System file descriptor. Immutable until Close.
Whether a zero byte read indicates EOF. This is false for a
message based socket connection.
Semaphore signaled when file is closed.
Lock sysfd and serialize access to Read and Write methods.
Writev cache.
Non-zero if this file has been set to blocking mode.
Whether this is a file rather than a network socket.
I/O poller.
Accept wraps the accept network call.
Close closes the FD. The underlying file descriptor is closed by the
destroy method when there are no remaining references.
Dup duplicates the file descriptor.
Fchdir wraps syscall.Fchdir.
Fchmod wraps syscall.Fchmod.
Fchown wraps syscall.Fchown.
Fstat wraps syscall.Fstat
Fsync invokes SYS_FCNTL with SYS_FULLFSYNC because
on OS X, SYS_FSYNC doesn't fully flush contents to disk.
See Issue #26650 as well as the man page for fsync on OS X.
Ftruncate wraps syscall.Ftruncate.
Init initializes the FD. The Sysfd field should already be set.
This can be called multiple times on a single FD.
The net argument is a network name from the net package (e.g., "tcp"),
or "file".
Set pollable to true if fd should be managed by runtime netpoll.
OpenDir returns a pointer to a DIR structure suitable for
ReadDir. In case of an error, the name of the failed
syscall is returned along with a syscall.Errno.
Pread wraps the pread system call.
Pwrite wraps the pwrite system call.
RawControl invokes the user-defined function f for a non-IO
operation.
RawRead invokes the user-defined function f for a read operation.
RawWrite invokes the user-defined function f for a write operation.
Read implements io.Reader.
ReadDirent wraps syscall.ReadDirent.
We treat this like an ordinary system call rather than a call
that tries to fill the buffer.
ReadFrom wraps the recvfrom network call.
ReadMsg wraps the recvmsg network call.
Seek wraps syscall.Seek.
SetBlocking puts the file into blocking mode.
SetDeadline sets the read and write deadlines associated with fd.
SetReadDeadline sets the read deadline associated with fd.
SetWriteDeadline sets the write deadline associated with fd.
SetsockoptByte wraps the setsockopt network call with a byte argument.
SetsockoptIPMreq wraps the setsockopt network call with an IPMreq argument.
SetsockoptIPv6Mreq wraps the setsockopt network call with an IPv6Mreq argument.
SetsockoptInet4Addr wraps the setsockopt network call with an IPv4 address.
SetsockoptInt wraps the setsockopt network call with an int argument.
SetsockoptLinger wraps the setsockopt network call with a Linger argument.
Shutdown wraps syscall.Shutdown.
WaitWrite waits until data can be read from fd.
Write implements io.Writer.
WriteMsg wraps the sendmsg network call.
WriteOnce is for testing only. It makes a single write call.
WriteTo wraps the sendto network call.
Writev wraps the writev system call.
decref removes a reference from fd.
It also closes fd when the state of fd is set to closed and there
is no remaining reference.
Destroy closes the file descriptor. This is called when there are
no remaining references.
eofError returns io.EOF when fd is available for reading end of
file.
incref adds a reference to fd.
It returns an error when fd cannot be used.
readLock adds a reference to fd and locks fd for reading.
It returns an error when fd cannot be used for reading.
readUnlock removes a reference from fd and unlocks fd for reading.
It also closes fd when the state of fd is set to closed and there
is no remaining reference.
writeLock adds a reference to fd and locks fd for writing.
It returns an error when fd cannot be used for writing.
writeUnlock removes a reference from fd and unlocks fd for writing.
It also closes fd when the state of fd is set to closed and there
is no remaining reference.
*T : io.Closer
*T : io.ReadCloser
*T : io.Reader
*T : io.ReadSeekCloser
*T : io.ReadSeeker
*T : io.ReadWriteCloser
*T : io.ReadWriter
*T : io.ReadWriteSeeker
*T : io.Seeker
*T : io.WriteCloser
*T : io.Writer
*T : io.WriteSeeker
func setDeadlineImpl(fd *FD, t time.Time, mode int) error
fdMutex is a specialized synchronization primitive that manages
lifetime of an fd and serializes access to Read, Write and Close
methods on FD.
rsemauint32stateuint64wsemauint32
decref removes a reference from mu.
It reports whether there is no remaining reference.
incref adds a reference to mu.
It reports whether mu is available for reading or writing.
increfAndClose sets the state of mu to closed.
It returns false if the file was already closed.
lock adds a reference to mu and locks mu.
It reports whether mu is available for reading or writing.
unlock removes a reference from mu and unlocks mu.
It reports whether there is no remaining reference.
dupCloseOnExecOld is the traditional way to dup an fd and
set its O_CLOEXEC bit, using two system calls.
Return the appropriate closing error based on isFile.
errnoErr returns common boxed Errno values, to prevent
allocations at runtime.
Implemented in the syscall package.
Implemented in syscall/syscall_darwin.go.
ignoringEINTR makes a function call and repeats it if it returns
an EINTR error. This appears to be required even though we install all
signal handlers with SA_RESTART: see #22838, #38033, #38836, #40846.
Also #20400 and #36644 are issues in which a signal handler is
installed without setting SA_RESTART. None of these are the common case,
but there are enough of them that it seems that we can't avoid
an EINTR loop.
ignoringEINTRIO is like ignoringEINTR, but just for IO calls.
Package-Level Variables (total 13, in which 8 are exported)
AcceptFunc is used to hook the accept call.
CloseFunc is used to hook the close call.
ErrDeadlineExceeded is returned for an expired deadline.
This is exported by the os package as os.ErrDeadlineExceeded.
ErrFileClosing is returned when a file descriptor is used after it
has been closed.
ErrNetClosing is returned when a network descriptor is used after
it has been closed. Keep this string consistent because of issue
#4373: since historically programs have not been able to detect
this error, they look for the string.
ErrNoDeadline is returned when a request is made to set a deadline
on a file type that does not use the poller.
ErrNotPollable is returned when the file or socket is not suitable
for event notification.
TestHookDidWritev is a hook for testing writev.
Do the interface allocations only once for common
Errno values.
Do the interface allocations only once for common
Errno values.
Do the interface allocations only once for common
Errno values.
tryDupCloexec indicates whether F_DUPFD_CLOEXEC should be used.
If the kernel doesn't support it, this is set to 0.
Package-Level Constants (total 15, none are exported)
Darwin and FreeBSD can't read or write 2GB+ files at a time,
even on 64-bit systems.
The same is true of socket implementations on many systems.
See golang.org/issue/7812 and golang.org/issue/16266.
Use 1GB instead of, say, 2GB-1, to keep subsequent reads aligned.
fdMutex.state is organized as follows:
1 bit - whether FD is closed, if set all subsequent lock operations will fail.
1 bit - lock for read operations.
1 bit - lock for write operations.
20 bits - total number of references (read+write+misc).
20 bits - number of outstanding read waiters.
20 bits - number of outstanding write waiters.
fdMutex.state is organized as follows:
1 bit - whether FD is closed, if set all subsequent lock operations will fail.
1 bit - lock for read operations.
1 bit - lock for write operations.
20 bits - total number of references (read+write+misc).
20 bits - number of outstanding read waiters.
20 bits - number of outstanding write waiters.
fdMutex.state is organized as follows:
1 bit - whether FD is closed, if set all subsequent lock operations will fail.
1 bit - lock for read operations.
1 bit - lock for write operations.
20 bits - total number of references (read+write+misc).
20 bits - number of outstanding read waiters.
20 bits - number of outstanding write waiters.
fdMutex.state is organized as follows:
1 bit - whether FD is closed, if set all subsequent lock operations will fail.
1 bit - lock for read operations.
1 bit - lock for write operations.
20 bits - total number of references (read+write+misc).
20 bits - number of outstanding read waiters.
20 bits - number of outstanding write waiters.
fdMutex.state is organized as follows:
1 bit - whether FD is closed, if set all subsequent lock operations will fail.
1 bit - lock for read operations.
1 bit - lock for write operations.
20 bits - total number of references (read+write+misc).
20 bits - number of outstanding read waiters.
20 bits - number of outstanding write waiters.
fdMutex.state is organized as follows:
1 bit - whether FD is closed, if set all subsequent lock operations will fail.
1 bit - lock for read operations.
1 bit - lock for write operations.
20 bits - total number of references (read+write+misc).
20 bits - number of outstanding read waiters.
20 bits - number of outstanding write waiters.
fdMutex.state is organized as follows:
1 bit - whether FD is closed, if set all subsequent lock operations will fail.
1 bit - lock for read operations.
1 bit - lock for write operations.
20 bits - total number of references (read+write+misc).
20 bits - number of outstanding read waiters.
20 bits - number of outstanding write waiters.
fdMutex.state is organized as follows:
1 bit - whether FD is closed, if set all subsequent lock operations will fail.
1 bit - lock for read operations.
1 bit - lock for write operations.
20 bits - total number of references (read+write+misc).
20 bits - number of outstanding read waiters.
20 bits - number of outstanding write waiters.
fdMutex.state is organized as follows:
1 bit - whether FD is closed, if set all subsequent lock operations will fail.
1 bit - lock for read operations.
1 bit - lock for write operations.
20 bits - total number of references (read+write+misc).
20 bits - number of outstanding read waiters.
20 bits - number of outstanding write waiters.
const overflowMsg = "too many concurrent operations on a single file or socket (max 10485...
Error values returned by runtime_pollReset and runtime_pollWait.
These must match the values in runtime/netpoll.go.
Error values returned by runtime_pollReset and runtime_pollWait.
These must match the values in runtime/netpoll.go.
Error values returned by runtime_pollReset and runtime_pollWait.
These must match the values in runtime/netpoll.go.
Error values returned by runtime_pollReset and runtime_pollWait.
These must match the values in runtime/netpoll.go.
The pages are generated with Goldsv0.4.2. (GOOS=darwin GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds.