1234567891011121314151617181920212223242526272829 |
- // Copyright 2015 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- //go:build aix || darwin || dragonfly || freebsd || hurd || (js && wasm) || linux || netbsd || openbsd || solaris
- package socktest
- // Sockets maps a socket descriptor to the status of socket.
- type Sockets map[int]Status
- func (sw *Switch) sockso(s int) *Status {
- sw.smu.RLock()
- defer sw.smu.RUnlock()
- so, ok := sw.sotab[s]
- if !ok {
- return nil
- }
- return &so
- }
- // addLocked returns a new Status without locking.
- // sw.smu must be held before call.
- func (sw *Switch) addLocked(s, family, sotype, proto int) *Status {
- sw.once.Do(sw.init)
- so := Status{Cookie: cookie(family, sotype, proto)}
- sw.sotab[s] = so
- return &so
- }
|