Tencent / phxpaxos

The Paxos library implemented in C++ that has been used in the WeChat production environment.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tcp连接接收数据问题

ivanzz1001 opened this issue · comments

看到tcp接收数据的模块。首先新的TCP连接进来,TcpAccepter会接受该连接,然后调用TcpAcceptor :: AddEvent()函数将其加入到一个负载最低的EventLoop中,在EventLoop :: AddEvent()将该文件句柄加入到m_oFDQueue之后,是否需要调用EventLoop :: JumpoutEpollWait()函数以通知EventLoop尽快将队列中的fd加入到epoll中,否则需要等到下一次超时后才能处理。

因此将EventLoop::AddEvent()改为如下是否较为合适:
void EventLoop :: AddEvent(int iFD, SocketAddress oAddr)
{
std::lock_guardstd::mutex oLockGuard(m_oMutex);
m_oFDQueue.push(make_pair(iFD, oAddr));

//新添加行
JumpoutEpollWait();
}