MCPcopy Create free account
hub / github.com/cloudwego/netpoll / init

Method init

connection_impl.go:378–400  ·  view source on GitHub ↗

init initializes the connection with options

(conn Conn, opts *options)

Source from the content-addressed store, hash-verified

376
377// init initializes the connection with options
378func (c *connection) init(conn Conn, opts *options) (err error) {
379 // init buffer, barrier, finalizer
380 c.readTrigger = make(chan error, 1)
381 c.writeTrigger = make(chan error, 1)
382 c.bookSize, c.maxSize = defaultLinkBufferSize, defaultLinkBufferSize
383 c.inputBuffer, c.outputBuffer = NewLinkBuffer(defaultLinkBufferSize), NewLinkBuffer()
384 c.outputBarrier = barrierPool.Get().(*barrier)
385 c.state = connStateNone
386
387 c.initNetFD(conn) // conn must be *netFD{}
388 c.initFDOperator()
389 c.initFinalizer()
390
391 syscall.SetNonblock(c.fd, true)
392 // enable TCP_NODELAY by default
393 switch c.network {
394 case "tcp", "tcp4", "tcp6":
395 setTCPNoDelay(c.fd, true)
396 }
397
398 // connection initialized and prepare options
399 return c.onPrepare(opts)
400}
401
402func (c *connection) initNetFD(conn Conn) {
403 if nfd, ok := conn.(*netFD); ok {

Callers 15

TestConnectionWriteFunction · 0.95
TestConnectionLargeWriteFunction · 0.95
TestConnectionReadFunction · 0.95
TestConnectionIOReaderFunction · 0.95
TestSetTCPNoDelayFunction · 0.95
TestConnectionUntilFunction · 0.95
TestWriterAfterCloseFunction · 0.95
TestPollManagerFunction · 0.95

Calls 6

initNetFDMethod · 0.95
initFDOperatorMethod · 0.95
initFinalizerMethod · 0.95
onPrepareMethod · 0.95
NewLinkBufferFunction · 0.85
setTCPNoDelayFunction · 0.85

Tested by 13

TestConnectionWriteFunction · 0.76
TestConnectionLargeWriteFunction · 0.76
TestConnectionReadFunction · 0.76
TestConnectionIOReaderFunction · 0.76
TestSetTCPNoDelayFunction · 0.76
TestConnectionUntilFunction · 0.76
TestWriterAfterCloseFunction · 0.76
TestPollManagerFunction · 0.76