Return Type | Function name | Arguments |
---|---|---|
void | hzIpServer::ServeRequests | (void) |
Declared in file: hzIpServer.h
Defined in file : hzIpServer.cpp
Function Logic:
Function body:
void hzIpServer::ServeRequests (void) { _hzfunc("hzIpServer::ServeRequests") ; hzPacket tbuf ; hzIpConnex* pCC ; hzLogger* pLog ; hzTcpCode rc ; pLog = GetThreadLogger() ; pthread_mutex_lock(&s_request_mutex); s_nReqThreads++ ; pthread_mutex_unlock(&s_request_mutex); for (; !m_bShutdown ;) { pthread_mutex_lock(&s_request_mutex); pthread_cond_wait(&s_request_cond, &s_request_mutex); for (;;) { pCC = (hzIpConnex*) s_queRequests.Pull() ; if (!pCC) break ; rc = pCC->m_OnIngress(pCC->InputZone(), pCC) ; switch (rc) { case TCP_TERMINATE: pCC->Hypoxia() ; s_queResponses.Push(pCC) ; pthread_cond_signal(&s_response_cond) ; break ; case TCP_KEEPALIVE: pCC->Oxygen() ; s_queResponses.Push(pCC) ; pthread_cond_signal(&s_response_cond) ; break ; case TCP_INCOMPLETE: pCC->Oxygen() ; pLog->Log("Client %d (sock %d): Data incomplete\n", pCC->EventNo(), pCC->CliSocket()) ; break ; } } pthread_mutex_unlock(&s_request_mutex); } }