void Server::AddClientProc() { pthread_mutex_lock(&clients.mutex); pthread_mutex_lock(&clientsState.mutex); { if(!clientsState.addList.empty()) { std::cout << "Server::AddClient(); add list - NOT empty!" << std::endl; //добавляем клиентов Client* c = (Client*)clientsState.addList.front(); int index = clients.AddClient( c->GetFd(), c ); if(index < 0) delete c; else { c->SetID(index); c->AttachClientChStateList(&clientsState); c->SetCurrentDir((FSDir*)fs); c->Run(); } clientsState.addList.pop(); } } pthread_mutex_unlock(&clientsState.mutex); pthread_mutex_unlock(&clients.mutex); }