// File: pxzwxx[P]SynBS/./serverFile/./CELLServer.hpp
// Function: CELLServer::OnRun(CELLThread*)
void OnRun(CELLThread* pThread) {
		while (pThread->isRun()) {
			if (!_clientSocketBuff.empty()) {//从缓冲队列里取出客户数据
				std::lock_guard<std::mutex> lock(_mutex);
				for (auto cSock : _clientSocketBuff) {
					CELLClient *pClient = new CELLClient(cSock);
					_clients[cSock] = pClient;
					pClient->serverId = _id;

					if (_pNetEvent)
						_pNetEvent->OnNetJoin(_clients[cSock]);
					addClient2IO(_clients[cSock]);
				}
				_clientSocketBuff.clear();
			}
			//如果没有需要处理的客户端，就跳过
			if (_clients.empty()) {
				std::chrono::milliseconds t(1);
				std::this_thread::sleep_for(t);
				continue;
			}
			if (!DoNetEvents()) { //读写socket
				pThread->Exit();
				break;
			}
			DoMsg(); //处理时间，分包，组织响应消息
			processTimer(); //处理定时器心跳时间
		}
		Log::INFO("CELLServer%d.OnRun exit\n", _id);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5dc0
testb $0x1, %al
jne 0xa68d
jmp 0xa891
movq -0x60(%rbp), %rdi
addq $0x48, %rdi
callq 0xa8c0
testb $0x1, %al
jne 0xa835
movq -0x60(%rbp), %rsi
addq $0x60, %rsi
leaq -0x18(%rbp), %rdi
callq 0x6410
movq -0x60(%rbp), %rax
addq $0x48, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x6b10
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rdi
callq 0x69a0
movq %rax, -0x30(%rbp)
leaq -0x28(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0xa900
testb $0x1, %al
jne 0xa6ef
jmp 0xa812
leaq -0x28(%rbp), %rdi
callq 0xa940
movl (%rax), %eax
movl %eax, -0x34(%rbp)
movl $0x60, %edi
callq 0x3320
movq %rax, -0x68(%rbp)
jmp 0xa70d
movq -0x68(%rbp), %rdi
movl -0x34(%rbp), %esi
movl $0x1400, %ecx           # imm = 0x1400
movl %ecx, %edx
callq 0xa960
jmp 0xa722
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq %rax, -0x78(%rbp)
addq $0x8, %rdi
leaq -0x34(%rbp), %rsi
callq 0xaa30
movq %rax, -0x70(%rbp)
jmp 0xa749
movq -0x60(%rbp), %rax
movq -0x70(%rbp), %rcx
movq -0x78(%rbp), %rdx
movq %rdx, (%rcx)
movl 0x38(%rax), %edx
movq -0x40(%rbp), %rcx
movl %edx, 0x4(%rcx)
cmpq $0x0, 0x40(%rax)
je 0xa7cf
movq -0x60(%rbp), %rdi
movq 0x40(%rdi), %rax
movq %rax, -0x88(%rbp)
addq $0x8, %rdi
leaq -0x34(%rbp), %rsi
callq 0xaa30
movq %rax, -0x80(%rbp)
jmp 0xa78b
movq -0x88(%rbp), %rdi
movq -0x80(%rbp), %rax
movq (%rax), %rsi
movq (%rdi), %rax
movq (%rax), %rax
callq *%rax
jmp 0xa7a3
jmp 0xa7cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xa82a
movq -0x68(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
movl $0x60, %esi
callq 0x3340
jmp 0xa82a
movq -0x60(%rbp), %rdi
addq $0x8, %rdi
leaq -0x34(%rbp), %rsi
callq 0xaa30
movq %rax, -0x90(%rbp)
jmp 0xa7e9
movq -0x60(%rbp), %rdi
movq -0x90(%rbp), %rax
movq (%rax), %rsi
movq (%rdi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xa802
jmp 0xa804
leaq -0x28(%rbp), %rdi
callq 0xab10
jmp 0xa6d9
movq -0x60(%rbp), %rdi
addq $0x48, %rdi
callq 0xab30
leaq -0x18(%rbp), %rdi
callq 0x6440
jmp 0xa835
leaq -0x18(%rbp), %rdi
callq 0x6440
jmp 0xa8ad
movq -0x60(%rbp), %rdi
addq $0x8, %rdi
callq 0xab50
testb $0x1, %al
jne 0xa848
jmp 0xa861
movq 0x4d81(%rip), %rax      # 0xf5d0
movq %rax, -0x58(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xab70
jmp 0xa67b
movq -0x60(%rbp), %rdi
movq (%rdi), %rax
callq *0x20(%rax)
testb $0x1, %al
jne 0xa87a
movq -0x10(%rbp), %rdi
callq 0x5fb0
jmp 0xa891
movq -0x60(%rbp), %rdi
callq 0xac20
movq -0x60(%rbp), %rdi
callq 0xacf0
jmp 0xa67b
movq -0x60(%rbp), %rax
movl 0x38(%rax), %esi
leaq 0x4c6e(%rip), %rdi      # 0xf50d
callq 0x5310
addq $0x90, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x34c0
nopw %cs:(%rax,%rax)