diff options
author | Luo Jinghua <sunmoon1997@gmail.com> | 2011-12-03 09:23:41 +0800 |
---|---|---|
committer | Luo Jinghua <sunmoon1997@gmail.com> | 2011-12-03 09:23:41 +0800 |
commit | b69b1cb308a5a2d3adf66297095eb8dd596b021b (patch) | |
tree | 45e02453ab4005d56be249e098770352ac2ed758 | |
parent | 2f6d63d1f1c42d60f91271475e386ece3dfe79c4 (diff) |
SexyAppFramework: Fixed deadlock in tcp log listener
-rw-r--r-- | osframework/source/SexyAppFramework/TcpLogListener.cpp | 11 |
1 files 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) |