
Product
Rust Support in Socket Is Now Generally Available
Socket’s Rust and Cargo support is now generally available, providing dependency analysis and supply chain visibility for Rust projects.
import "toolman.org/io/rawio"
Package rawio provides utilities for performing cancellable I/O operations.
go get toolman.org/io/rawio
epoll.go fd.go latch.go reader.go
var ErrNoFD = errors.New("no manner to discern file descriptor from object")
ErrNoFD indicates that no file descriptor could be extracted.
var NotifySignal = syscall.SIGIO
NotifySignal is the signal that will be used to interrupt a blocked Read operation.
func ExtractFD(x interface{}) (int, error)
ExtractFD attempts to extract a usable file descriptor from x -- which must be either an *os.File or an object with a method having a signature of "File() (*os.File, error)", such as most implementations of net.Conn. If x is something else, ErrNoFD is returned.
If x is an *os.File, its Fd method is called -- otherwise, an *os.File is aquired from the aforementioned File method and its Fd method is called. In either case, a file descriptor is acquired then duped and the duplicate file descriptor is returned.
Prior to returning, Close is called on the *os.File used to acquire the original file descriptor and, if x is not an *os.File but is an io.Closer, x will also be closed. If any of these close operations result in an error, the duped file descriptor is also closed and an error is returned.
On success, a usable file descriptor and a nil error are returned and the object from which it was extracted will be closed and no longer usable.
Note: We dupe the file descriptor before returning it because os.File has a finalizer routine which calls Close when the object is garbage collected. This also closes the file descriptor returned by its Fd method.
func IsEAGAIN(err error) bool
IsEAGAIN returns true if err represents a system error indicating that an operation should be tried again.
type RawReader struct {
sync.RWMutex
// contains filtered or unexported fields
}
A RawReader performs read operations that may be cancelled -- either by closing the reader from a separate goroutine or, through its ReadContext method, if the context is cancelled.
func NewRawReader(fd int) (*RawReader, error)
NewRawReader creates a new RawReader from fd or nil and an error if the RawReader cannot be created.
func (r *RawReader) Close() error
Close will close the RawReader. Any concurrently blocked read operations will return io.EOF. Close implements io.Closer.
func (r *RawReader) Fd() int
Fd returns the file descriptor assocated with this RawReader.
func (r *RawReader) Read(p []byte) (int, error)
Read implements io.Reader. If Read is blocked and r is closed in a separate goroutine, Read will return 0 and io.EOF.
func (r *RawReader) ReadContext(ctx context.Context, p []byte) (int, error)
ReadContext behaves similar to Read but may also be cancelled through the given context. If ctx is cancelled, then ReadContext will return ctx.Err().
FAQs
Unknown package
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket’s Rust and Cargo support is now generally available, providing dependency analysis and supply chain visibility for Rust projects.

Security News
Chrome 144 introduces the Temporal API, a modern approach to date and time handling designed to fix long-standing issues with JavaScript’s Date object.

Research
Five coordinated Chrome extensions enable session hijacking and block security controls across enterprise HR and ERP platforms.