mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			30 lines
		
	
	
		
			757 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			757 B
		
	
	
	
		
			Go
		
	
	
	
// 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.
 | 
						|
 | 
						|
// +build aix darwin dragonfly freebsd js,wasm linux nacl 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
 | 
						|
}
 |