linyacool / WebServer

A C++ High Performance Web Server
MIT License
7.77k stars 2.1k forks source link

HttpClose的问题 #90

Closed pansn1995 closed 4 years ago

pansn1995 commented 4 years ago

您好,最近在看您的项目,有个地方想要请教,在HttpData类中的HttpClose函数。

void HttpData::handleClose() { connectionState_ = H_DISCONNECTED; std::shared_ptr guard(shared_fromthis()); loop->removeFromPoller(channel_); }

其中std::shared_ptr guard(shared_from_this())的作用是什么呢?我感觉是作为RAII将当前HttpData的引用计数减一,可是shared_from_this()本身就创建了一个shared_ptr,引用计数加一,所以这个操作的意义是什么呢? 然后我把这一行注释掉,用webbench压测,性能能够得到一些提升。希望能够得到您的解答,谢谢