Mercurial > hg > CbC > CbC_gcc
view libgo/go/net/sock_bsd.go @ 136:4627f235cf2a
fix c-next example
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 08 Nov 2018 14:11:56 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line source
// Copyright 2009 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 darwin dragonfly freebsd netbsd openbsd package net import ( "runtime" "syscall" ) func maxListenerBacklog() int { var ( n uint32 err error ) switch runtime.GOOS { case "darwin": n, err = syscall.SysctlUint32("kern.ipc.somaxconn") case "freebsd": n, err = syscall.SysctlUint32("kern.ipc.soacceptqueue") case "netbsd": // NOTE: NetBSD has no somaxconn-like kernel state so far case "openbsd": n, err = syscall.SysctlUint32("kern.somaxconn") } if n == 0 || err != nil { return syscall.SOMAXCONN } // FreeBSD stores the backlog in a uint16, as does Linux. // Assume the other BSDs do too. Truncate number to avoid wrapping. // See issue 5030. if n > 1<<16-1 { n = 1<<16 - 1 } return int(n) }