1
This commit is contained in:
parent
08f2164236
commit
b1b9b8c3b9
@ -89,7 +89,6 @@ const std::string App::GetPkgName()
|
||||
|
||||
void App::Init()
|
||||
{
|
||||
msg_mutex_ = new std::mutex();
|
||||
udp_msg_mutex_ = new std::mutex();
|
||||
|
||||
HandlerMgr::Instance()->Init();
|
||||
@ -147,10 +146,7 @@ void App::UnInit()
|
||||
JsonDataMgr::Instance()->UnInit();
|
||||
HandlerMgr::Instance()->UnInit();
|
||||
|
||||
FreeSocketMsgQueue();
|
||||
FreeUdpMsgQueue();
|
||||
delete msg_mutex_;
|
||||
msg_mutex_ = nullptr;
|
||||
delete udp_msg_mutex_;
|
||||
udp_msg_mutex_ = nullptr;
|
||||
a8::XPrintf("wsproxy terminated instance_id:%d pid:%d\n",
|
||||
@ -168,7 +164,6 @@ void App::QuickExecute()
|
||||
{
|
||||
f8::Timer::Instance()->Update();
|
||||
f8::MsgQueue::Instance()->Update();
|
||||
DispatchMsg();
|
||||
DispatchUdpMsg();
|
||||
LongSessionMgr::Instance()->Update();
|
||||
}
|
||||
@ -179,20 +174,6 @@ void App::SlowerExecute()
|
||||
|
||||
bool App::HasTask()
|
||||
{
|
||||
{
|
||||
if (!work_node_) {
|
||||
msg_mutex_->lock();
|
||||
if (!work_node_ && top_node_) {
|
||||
work_node_ = top_node_;
|
||||
top_node_ = nullptr;
|
||||
bot_node_ = nullptr;
|
||||
}
|
||||
msg_mutex_->unlock();
|
||||
}
|
||||
if (work_node_) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
{
|
||||
if (!udp_work_node_) {
|
||||
udp_msg_mutex_->lock();
|
||||
@ -210,63 +191,6 @@ bool App::HasTask()
|
||||
return false;
|
||||
}
|
||||
|
||||
void App::DispatchMsg()
|
||||
{
|
||||
#if 0
|
||||
long long starttick = a8::XGetTickCount();
|
||||
if (!work_node_ && top_node_) {
|
||||
msg_mutex_->lock();
|
||||
work_node_ = top_node_;
|
||||
top_node_ = nullptr;
|
||||
bot_node_ = nullptr;
|
||||
working_msgnode_size_ = msgnode_size_;
|
||||
msg_mutex_->unlock();
|
||||
}
|
||||
|
||||
f8::MsgHdr hdr;
|
||||
while (work_node_) {
|
||||
MsgNode *pdelnode = work_node_;
|
||||
work_node_ = pdelnode->next;
|
||||
hdr.msgid = pdelnode->msgid;
|
||||
hdr.seqid = pdelnode->seqid;
|
||||
hdr.socket_handle = pdelnode->sockhandle;
|
||||
hdr.buf = pdelnode->buf;
|
||||
hdr.buflen = pdelnode->buflen;
|
||||
hdr.offset = 0;
|
||||
hdr.ip_saddr = pdelnode->ip_saddr;
|
||||
switch (pdelnode->sockfrom) {
|
||||
case SF_Client:
|
||||
{
|
||||
ProcessClientMsg(hdr, pdelnode->tag);
|
||||
}
|
||||
break;
|
||||
case SF_TargetServer:
|
||||
{
|
||||
ProcessTargetServerMsg(hdr, pdelnode->tag);
|
||||
}
|
||||
break;
|
||||
case SF_MasterServer:
|
||||
{
|
||||
ProcessMasterServerMsg(hdr, pdelnode->tag);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (pdelnode->buf) {
|
||||
free(pdelnode->buf);
|
||||
}
|
||||
free(pdelnode);
|
||||
working_msgnode_size_--;
|
||||
if (a8::XGetTickCount() - starttick > 200) {
|
||||
break;
|
||||
}
|
||||
}//end while
|
||||
|
||||
if (!work_node_) {
|
||||
working_msgnode_size_ = 0;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void App::ProcessClientMsg(f8::MsgHdr* hdr, int tag)
|
||||
{
|
||||
if (hdr->msgid == ss::_SS_CMLogin ||
|
||||
@ -360,30 +284,6 @@ void App::ProcessTargetServerMsg(f8::MsgHdr* hdr, int tag)
|
||||
}
|
||||
}
|
||||
|
||||
void App::FreeSocketMsgQueue()
|
||||
{
|
||||
msg_mutex_->lock();
|
||||
if (!work_node_) {
|
||||
work_node_ = top_node_;
|
||||
top_node_ = nullptr;
|
||||
bot_node_ = nullptr;
|
||||
}
|
||||
while (work_node_) {
|
||||
MsgNode* pdelnode = work_node_;
|
||||
work_node_ = work_node_->next;
|
||||
if (pdelnode->buf) {
|
||||
free(pdelnode->buf);
|
||||
}
|
||||
free(pdelnode);
|
||||
if (!work_node_) {
|
||||
work_node_ = top_node_;
|
||||
top_node_ = nullptr;
|
||||
bot_node_ = nullptr;
|
||||
}
|
||||
}
|
||||
msg_mutex_->unlock();
|
||||
}
|
||||
|
||||
void App::FreeUdpMsgQueue()
|
||||
{
|
||||
udp_msg_mutex_->lock();
|
||||
|
@ -38,24 +38,17 @@ private:
|
||||
void QuickExecute();
|
||||
void SlowerExecute();
|
||||
|
||||
void DispatchMsg();
|
||||
void DispatchUdpMsg();
|
||||
|
||||
void ProcessClientMsg(f8::MsgHdr* hdr, int tag);
|
||||
void ProcessMasterServerMsg(f8::MsgHdr* hdr, int tag);
|
||||
void ProcessTargetServerMsg(f8::MsgHdr* hdr, int tag);
|
||||
|
||||
void FreeSocketMsgQueue();
|
||||
void FreeUdpMsgQueue();
|
||||
|
||||
private:
|
||||
PerfMonitor perf_;
|
||||
|
||||
std::mutex* msg_mutex_ = nullptr;
|
||||
MsgNode* top_node_ = nullptr;
|
||||
MsgNode* bot_node_ = nullptr;
|
||||
MsgNode* work_node_ = nullptr;
|
||||
|
||||
std::mutex* udp_msg_mutex_ = nullptr;
|
||||
UdpMsgNode* udp_top_node_ = nullptr;
|
||||
UdpMsgNode* udp_bot_node_ = nullptr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user