49 LOG(ERROR) <<
"server:" << config_.
GetSelfInfo().id() <<
" start running";
52 std::vector<std::thread> threads;
54 for (
int i = 0; i < woker_num; ++i) {
55 threads.push_back(std::thread([&]() {
57 auto client_socket = socket_queue.
Pop();
58 if (client_socket ==
nullptr) {
61 std::unique_ptr<DataInfo> request_info = std::make_unique<DataInfo>();
63 client_socket->Recv(&request_info->buff, &request_info->data_len);
67 std::unique_ptr<QueueItem> item = std::make_unique<QueueItem>();
68 item->socket = std::move(client_socket);
69 item->data = std::move(request_info);
71 input_queue_->
Push(std::move(item));
77 auto client_socket = socket_->Accept();
78 if (client_socket ==
nullptr) {
81 socket_queue.
Push(std::move(client_socket));
84 for (
auto& th : threads) {