EventLoop* EventLoopThreadPool::GetNextLoopWithHash(uint64_t hash) {
EventLoop* loop = base_loop_;
if (IsRunning() && !threads_.empty()) {
uint64_t next = hash % threads_.size();
loop = (threads_[next])->loop();
}
return loop;
}
调用
EventLoop *tpool;
return tpool_->GetNextLoopWithHash(raddr->sin_addr.s_addr);
ip转换为u_long,
即hash(值)%size
这个值可以用各个节点服务器ip 对应的u_long值