From b69b1cb308a5a2d3adf66297095eb8dd596b021b Mon Sep 17 00:00:00 2001 From: Luo Jinghua Date: Sat, 3 Dec 2011 09:23:41 +0800 Subject: SexyAppFramework: Fixed deadlock in tcp log listener --- osframework/source/SexyAppFramework/TcpLogListener.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/osframework/source/SexyAppFramework/TcpLogListener.cpp b/osframework/source/SexyAppFramework/TcpLogListener.cpp index 068be34..919a3df 100644 --- a/osframework/source/SexyAppFramework/TcpLogListener.cpp +++ b/osframework/source/SexyAppFramework/TcpLogListener.cpp @@ -55,10 +55,6 @@ TcpLogListener::TcpLogListener(const std::string& target) : mSock->setListen(5)) { mPort = StrFormat("%d", mSock->getLocalPort()); - - logtfi(LOG_TAG, - "Listening on %s:%d\n", - mHost.c_str(), mSock->getLocalPort()); break; } delete mSock; @@ -142,7 +138,7 @@ bool TcpLogListener::sendRecord(TcpLogRecord* record, TcpLogClient& client) assert (client.mSock != 0); // 4b tag 'LGBD' - // 4b package len + // 4b payload len // 4b pid // 4b timestamp // 2b log level @@ -157,7 +153,7 @@ bool TcpLogListener::sendRecord(TcpLogRecord* record, TcpLogClient& client) ptr[3] = 'D'; ptr += 4; - ptr = writel(ptr, sizeof(header) + record->tag.length() + record->msg.length()); + ptr = writel(ptr, sizeof(header) - 8 + record->tag.length() + record->msg.length()); ptr = writel(ptr, record->pid); ptr = writel(ptr, record->timestamp); ptr = writes(ptr, record->lvl); @@ -174,6 +170,9 @@ bool TcpLogListener::sendRecord(TcpLogRecord* record, TcpLogClient& client) void TcpLogListener::server() { + logtfi(LOG_TAG, "Listening on %s:%d\n", + mHost.c_str(), mSock->getLocalPort()); + TcpLogRecord record; while (!mDone && mSock) -- cgit v1.2.3