code: func (socket *mongoSocket) Acquire() (info *mongoServerInfo) {
  	socket.Lock()
  	if socket.references == 0 {
  		panic("Socket got non-initial acquire with references == 0")
  	}
  	// We'll track references to dead sockets as well.
  	// Caller is still supposed to release the socket.
  	socket.references++
  	stats.socketRefs(+1)
  	serverInfo := socket.serverInfo
  	socket.Unlock()
  	return serverInfo
  }
docs: // Acquire obtains an additional reference to the socket.
  // The socket will only be recycled when it's released as many
  // times as it's been acquired.