// +build !darwin

package tcplisten

import (
	
	
)

func newSocketCloexec(, ,  int) (int, error) {
	,  := syscall.Socket(, |syscall.SOCK_NONBLOCK|syscall.SOCK_CLOEXEC, )
	if  == nil {
		return , nil
	}

	if  == syscall.EPROTONOSUPPORT ||  == syscall.EINVAL {
		return newSocketCloexecOld(, , )
	}

	return -1, fmt.Errorf("cannot create listening unblocked socket: %s", )
}