chenshuo / muduo

Event-driven network library for multi-threaded Linux server in C++11
https://github.com/chenshuo/muduo
Other
14.88k stars 5.18k forks source link

Buffer 中的 extrabuf 为什么 writable < extrabuf 就开辟两个内存块呢? #554

Closed CheNsiR-MASTER closed 2 years ago

CheNsiR-MASTER commented 2 years ago

GitHub issues are for tracking bugs, not for general discussing like a forum.

If you have a general question to ask, send it to mailing list:

muduo-library@googlegroups.com

Or visit: https://groups.google.com/forum/#!forum/muduo-library

When file an issue muduo, please provide a SSCCE: Short, Self Contained, Correct (Compilable), Example.

If you can't compile muduo, make sure you install cmake and boost from the official package repository, e.g. apt or yum, before opening a bug. Don't open a bug if you installed boost from a third-party source or downloaded it by yourself, and couldn't compile muduo, thank you.

Also specify the exact environment where the issue occurs:

Linux distro and version? x86 or ARM? 32-bit or 64-bit?

Branch (cpp98/cpp11/cpp17) and version of muduo?

Version of cmake, gcc and boost? (If not from distro.)

CheNsiR-MASTER commented 2 years ago

const int iovcnt = (writable < sizeof extrabuf) ? 2 : 1;

chenshuo commented 2 years ago

Right above this line:

 // when there is enough space in this buffer, don't read into extrabuf.
 // when extrabuf is used, we read 128k-1 bytes at most.
 const int iovcnt = (writable < sizeof extrabuf) ? 2 : 1;