// Copyright 2017 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 linux

package socket

import (
	
)

func ( *Conn) ( []Message,  int) (int, error) {
	for  := range  {
		[].raceWrite()
	}
	 := defaultMmsgTmpsPool.Get()
	defer defaultMmsgTmpsPool.Put()
	var  func([]byte, string) (net.Addr, error)
	if .network != "tcp" {
		 = parseInetAddr
	}
	 := .packer.pack(, , nil)
	,  := .syscaller.recvmmsg(.c, , )
	if  != nil {
		return , 
	}
	if  := [:].unpack([:], , .network);  != nil {
		return , 
	}
	return , nil
}

func ( *Conn) ( []Message,  int) (int, error) {
	for  := range  {
		[].raceRead()
	}
	 := defaultMmsgTmpsPool.Get()
	defer defaultMmsgTmpsPool.Put()
	var  func(net.Addr, []byte) int
	if .network != "tcp" {
		 = marshalInetAddr
	}
	 := .packer.pack(, nil, )
	,  := .syscaller.sendmmsg(.c, , )
	if  != nil {
		return , 
	}
	if  := [:].unpack([:], nil, "");  != nil {
		return , 
	}
	return , nil
}