1
This commit is contained in:
parent
08f2164236
commit
b1b9b8c3b9
@ -89,7 +89,6 @@ const std::string App::GetPkgName()
|
|||||||
|
|
||||||
void App::Init()
|
void App::Init()
|
||||||
{
|
{
|
||||||
msg_mutex_ = new std::mutex();
|
|
||||||
udp_msg_mutex_ = new std::mutex();
|
udp_msg_mutex_ = new std::mutex();
|
||||||
|
|
||||||
HandlerMgr::Instance()->Init();
|
HandlerMgr::Instance()->Init();
|
||||||
@ -147,10 +146,7 @@ void App::UnInit()
|
|||||||
JsonDataMgr::Instance()->UnInit();
|
JsonDataMgr::Instance()->UnInit();
|
||||||
HandlerMgr::Instance()->UnInit();
|
HandlerMgr::Instance()->UnInit();
|
||||||
|
|
||||||
FreeSocketMsgQueue();
|
|
||||||
FreeUdpMsgQueue();
|
FreeUdpMsgQueue();
|
||||||
delete msg_mutex_;
|
|
||||||
msg_mutex_ = nullptr;
|
|
||||||
delete udp_msg_mutex_;
|
delete udp_msg_mutex_;
|
||||||
udp_msg_mutex_ = nullptr;
|
udp_msg_mutex_ = nullptr;
|
||||||
a8::XPrintf("wsproxy terminated instance_id:%d pid:%d\n",
|
a8::XPrintf("wsproxy terminated instance_id:%d pid:%d\n",
|
||||||
@ -168,7 +164,6 @@ void App::QuickExecute()
|
|||||||
{
|
{
|
||||||
f8::Timer::Instance()->Update();
|
f8::Timer::Instance()->Update();
|
||||||
f8::MsgQueue::Instance()->Update();
|
f8::MsgQueue::Instance()->Update();
|
||||||
DispatchMsg();
|
|
||||||
DispatchUdpMsg();
|
DispatchUdpMsg();
|
||||||
LongSessionMgr::Instance()->Update();
|
LongSessionMgr::Instance()->Update();
|
||||||
}
|
}
|
||||||
@ -179,20 +174,6 @@ void App::SlowerExecute()
|
|||||||
|
|
||||||
bool App::HasTask()
|
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_) {
|
if (!udp_work_node_) {
|
||||||
udp_msg_mutex_->lock();
|
udp_msg_mutex_->lock();
|
||||||
@ -210,63 +191,6 @@ bool App::HasTask()
|
|||||||
return false;
|
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)
|
void App::ProcessClientMsg(f8::MsgHdr* hdr, int tag)
|
||||||
{
|
{
|
||||||
if (hdr->msgid == ss::_SS_CMLogin ||
|
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()
|
void App::FreeUdpMsgQueue()
|
||||||
{
|
{
|
||||||
udp_msg_mutex_->lock();
|
udp_msg_mutex_->lock();
|
||||||
|
@ -38,24 +38,17 @@ private:
|
|||||||
void QuickExecute();
|
void QuickExecute();
|
||||||
void SlowerExecute();
|
void SlowerExecute();
|
||||||
|
|
||||||
void DispatchMsg();
|
|
||||||
void DispatchUdpMsg();
|
void DispatchUdpMsg();
|
||||||
|
|
||||||
void ProcessClientMsg(f8::MsgHdr* hdr, int tag);
|
void ProcessClientMsg(f8::MsgHdr* hdr, int tag);
|
||||||
void ProcessMasterServerMsg(f8::MsgHdr* hdr, int tag);
|
void ProcessMasterServerMsg(f8::MsgHdr* hdr, int tag);
|
||||||
void ProcessTargetServerMsg(f8::MsgHdr* hdr, int tag);
|
void ProcessTargetServerMsg(f8::MsgHdr* hdr, int tag);
|
||||||
|
|
||||||
void FreeSocketMsgQueue();
|
|
||||||
void FreeUdpMsgQueue();
|
void FreeUdpMsgQueue();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PerfMonitor perf_;
|
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;
|
std::mutex* udp_msg_mutex_ = nullptr;
|
||||||
UdpMsgNode* udp_top_node_ = nullptr;
|
UdpMsgNode* udp_top_node_ = nullptr;
|
||||||
UdpMsgNode* udp_bot_node_ = nullptr;
|
UdpMsgNode* udp_bot_node_ = nullptr;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user