MCPcopy Create free account
hub / github.com/encodeous/nylon / send

Method send

polyamide/conn/bind_std.go:419–446  ·  view source on GitHub ↗
(conn *net.UDPConn, pc batchWriter, msgs []ipv6.Message)

Source from the content-addressed store, hash-verified

417}
418
419func (s *StdNetBind) send(conn *net.UDPConn, pc batchWriter, msgs []ipv6.Message) error {
420 var (
421 n int
422 err error
423 start int
424 )
425 if runtime.GOOS == "linux" || runtime.GOOS == "android" {
426 for {
427 n, err = pc.WriteBatch(msgs[start:], 0)
428 perf.SendBatchSize.Add(float64(n))
429 perf.SendsPerSecond.Add(1)
430 if err != nil || n == len(msgs[start:]) {
431 break
432 }
433 start += n
434 }
435 } else {
436 for _, msg := range msgs {
437 _, _, err = conn.WriteMsgUDP(msg.Buffers[0], msg.OOB, msg.Addr.(*net.UDPAddr))
438 if err != nil {
439 break
440 }
441 }
442 perf.SendsPerSecond.Add(float64(len(msgs)))
443 perf.SendBatchSize.Add(1)
444 }
445 return err
446}
447
448const (
449 // Exceeding these values results in EMSGSIZE. They account for layer3 and

Callers 1

SendMethod · 0.95

Calls 1

WriteBatchMethod · 0.80

Tested by

no test coverage detected